不用加减乘除怎么实现两个数相加?这种方法你想到了吗?

简介: 不用加减乘除怎么实现两个数相加?这种方法你想到了吗?

题目链接:不用加减乘除做加法_牛客题霸_牛客网 (nowcoder.com)



思路如下图:



参考代码:


int Add(int num1, int num2) 
{
    while (num2 != 0)
    {
        int tmp = (num1 & num2) << 1;
        num1 ^= num2;
        num2 = tmp;
    }
    return num1;
}
int main()
{
    int a = 0;
    int b = 0;
    scanf("%d %d", &a, &b);
    int ret = Add(a, b);
    printf("%d\n", ret);
    return 0;
}
相关文章
|
5月前
|
算法
聊聊一个面试中经常出现的算法题:组合运算及其实际应用例子
聊聊一个面试中经常出现的算法题:组合运算及其实际应用例子
|
7月前
|
机器学习/深度学习 存储
一篇文章讲明白HJA的异或值
一篇文章讲明白HJA的异或值
112 0
|
8月前
|
Java Android开发
Java实现随机四则运算问题
Java实现随机四则运算问题
86 0
|
人工智能 算法 C++
【基础算法】关于高精度计算的问题【很高位数数据的加减乘除(相关代码用C++实现)】
【基础算法】关于高精度计算的问题【很高位数数据的加减乘除(相关代码用C++实现)】
|
前端开发
前端学习案例17-数组遍历方法7-累加
前端学习案例17-数组遍历方法7-累加
73 0
前端学习案例17-数组遍历方法7-累加
|
Python
从斐波那契数列求和想到的俗手、本手和妙手
从斐波那契数列求和想到的俗手、本手和妙手
112 0
|
存储 算法
【每日挠头算法题】Leetcode 989. 数组形式的整数加法 —— 高精度加法解法
【每日挠头算法题】Leetcode 989. 数组形式的整数加法 —— 高精度加法解法
156 0
【每日挠头算法题】Leetcode 989. 数组形式的整数加法 —— 高精度加法解法
【每日一题Day41】生成交替二进制字符串的最小操作数 | 模拟 位运算
思路:长度一定的交替二进制字符串有两种可能性,以字符0开头的0101字符串和以字符1开头的1010字符串,因此只需要将字符串s与这两种字符串进行比较,记录不相同的字符个数,最后返回较小值即可
105 0
【每日一题Day41】生成交替二进制字符串的最小操作数 | 模拟 位运算