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

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

题目链接:不用加减乘除做加法_牛客题霸_牛客网 (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;
}
相关文章
|
6天前
【变态面试题】【两种解法】不能创建临时变量(第三个变量),实现两个数的交换
【变态面试题】【两种解法】不能创建临时变量(第三个变量),实现两个数的交换
11 0
【变态面试题】【两种解法】不能创建临时变量(第三个变量),实现两个数的交换
|
5月前
|
Java Android开发
Java实现随机四则运算问题
Java实现随机四则运算问题
39 0
|
6月前
|
机器学习/深度学习 存储
【每日易题】求二进制中1的个数——三种非常巧妙的解题思路
【每日易题】求二进制中1的个数——三种非常巧妙的解题思路
37 0
|
11月前
|
人工智能 算法 C++
【基础算法】关于高精度计算的问题【很高位数数据的加减乘除(相关代码用C++实现)】
【基础算法】关于高精度计算的问题【很高位数数据的加减乘除(相关代码用C++实现)】
|
11月前
|
算法 前端开发
前端算法-各位相加
前端算法-各位相加
|
算法 C语言
C语言典型例题1——水仙花数
水仙花数 水仙花数的含义: “水仙花数”是一个三位数其各位数字的立方和等于该数本身。例如:153=111+555+333
163 0
|
前端开发
前端学习案例17-数组遍历方法7-累加
前端学习案例17-数组遍历方法7-累加
52 0
前端学习案例17-数组遍历方法7-累加
|
算法
求两个数对应二进制位不同的个数(深度剖析+补充例题)
求两个数对应二进制位不同的个数(深度剖析+补充例题)
118 0
求两个数对应二进制位不同的个数(深度剖析+补充例题)
复习C部分:1.看代码求值题 2.写三个整数代码从大到小输出 3.打印1~100中所有3的倍数 4.给定两个数,求最大公约数(递减法,辗转相除法)
复习C部分:1.看代码求值题 2.写三个整数代码从大到小输出 3.打印1~100中所有3的倍数 4.给定两个数,求最大公约数(递减法,辗转相除法)
101 0
复习C部分:1.看代码求值题 2.写三个整数代码从大到小输出 3.打印1~100中所有3的倍数 4.给定两个数,求最大公约数(递减法,辗转相除法)
|
C语言
C语言“交换两个变量的值”和求十个数中最大的数(流程图、代码)
C语言“交换两个变量的值”和求十个数中最大的数(流程图、代码)
334 0
C语言“交换两个变量的值”和求十个数中最大的数(流程图、代码)