不用+-*/实现加法运算
2013-08-30 14:29
330 查看
不能用 + - * / 等符号,那么首先想到的就是位运算了。
直接上代码……
递归代码:
不用递归:
另有一很巧妙的方法:利用地址偏移
直接上代码……
递归代码:
int solution1(int a, int b) { if (0 == b) return a; else { int sum = a ^ b; int carry = (a & b) >> 1; return solution1(sum, carry); } }
不用递归:
int solution2(int a, int b) { while(b) { int temp = a ^ b; b = (a & b) >> 1; a = temp; } return a; }
另有一很巧妙的方法:利用地址偏移
int solution3(int a, int b) { char *c = (char *)a; return (int)&c[b]; }
相关文章推荐
- 不用+-*/实现加法运算
- 剑指offer 不用加减乘除做加法(位运算实现)
- LintCode-第一题:A+B problem (不用“+”等运算符)(位运算实现加法)
- 面试算法题:不用+、-、×、÷数字运算符做加法 (位运算实现加法操作)
- 不用加法操作符(+)实现加法运算
- 不用+-*/实现加法
- 不用加减乘除实现加法运算
- 1.A+B问题,不用+实现加法运算
- 不用‘+’实现加法运算
- 不用 +,-,*,/四则运算实现加法
- c笔试面试 之 不用加法操作(用逻辑运算)实现两个正整数的除法
- 不用加减乘除实现加法运算
- 加法的实现-不用加减乘除运算
- 不用加减乘除实现加法运算
- 不用加减乘除实现加法运算
- 不用 + -× /实现加法运算
- 不用加减乘除实现加法运算
- C++编程->汇编内联实现加法运算
- 位运算实现加法
- ARM指令--adc 实现64位加法运算