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

简介: 【刷算法】不用加减乘除怎么做加法?

题目描述


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


分析


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

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

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


代码实现


function Add(num1, num2)
{
    var sum = num1;
    while(num2 !== 0){
        sum = num1 ^ num2;
        num2 = (num1 & num2) << 1;
        num1 = sum;
    }
    return sum;
}



相关文章
|
17天前
|
算法 测试技术 C#
【位运算】【脑筋急转弯】2749. 得到整数零需要执行的最少操作数
【位运算】【脑筋急转弯】2749. 得到整数零需要执行的最少操作数
|
17天前
|
算法 测试技术 C#
【数学】【位运算】LeetCoce810. 黑板异或游戏
【数学】【位运算】LeetCoce810. 黑板异或游戏
|
17天前
|
存储 算法 搜索推荐
C语言第二十七练 异或的运算规律
C语言第二十七练 异或的运算规律
30 0
|
17天前
|
算法 C++
试除法求约数:深入分析与实践
试除法求约数:深入分析与实践
25 3
|
17天前
|
存储 机器学习/深度学习 Windows
【题型总结】模拟运算
【题型总结】模拟运算
31 0
|
6月前
|
算法 C语言
面试 | 移位妙解递归乘法【细节决定成败】
面试 | 移位妙解递归乘法【细节决定成败】
29 0
|
11月前
|
算法
《零基础学算法》(第一讲)位运算的奇技淫巧
《零基础学算法》(第一讲)位运算的奇技淫巧
115 0
|
12月前
|
存储 算法 Python
算法创作 | 两数相加问题解决方法
算法创作 | 两数相加问题解决方法
66 0
|
12月前
不用加减乘除怎么实现两个数相加?这种方法你想到了吗?
不用加减乘除怎么实现两个数相加?这种方法你想到了吗?
|
12月前
|
人工智能 算法 C++
【基础算法】关于高精度计算的问题【很高位数数据的加减乘除(相关代码用C++实现)】
【基础算法】关于高精度计算的问题【很高位数数据的加减乘除(相关代码用C++实现)】