【刷算法】不用加减乘除怎么作加法?

题目描述

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。函数

分析

既然不让使用加减乘除符号,只能考虑位运算了。

0+1=1;0+0=0;1+1=10

观察到可使用异或,并且要考虑到进位的问题。code

代码实现

function Add(num1, num2)
{
    var sum = num1;
    while(num2 !== 0){
        sum = num1 ^ num2;
        num2 = (num1 & num2) << 1;
        num1 = sum;
    }
    return sum;
}
相关文章
相关标签/搜索