面试题65:不用加减乘除做加法(C++)
2021-01-25 13:15
标签:amp code 解题思路 tmp 异或运算 ret mic 程序 https 题目地址:https://leetcode-cn.com/problems/bu-yong-jia-jian-cheng-chu-zuo-jia-fa-lcof/ 写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。 示例: 提示: 拿到题目第一思路是二进制位运算,乘法考虑左移、除法考虑右移,那么加法和减法则考虑按位异或运算和按位与运算,计算a + b 等价于(a ^ b) + ((a & b)
面试题65:不用加减乘除做加法(C++) 标签:amp code 解题思路 tmp 异或运算 ret mic 程序 https 原文地址:https://www.cnblogs.com/wzw0625/p/12860499.html题目描述
题目示例
输入: a = 1, b = 1
输出: 2
a
, b
均可能是负数或 0解题思路
程序源码
class Solution {
public:
int add(int a, int b) {
if(a == 0) return b;
if(b == 0) return a;
while(b != 0) //若b = 0,表示已经没有进位了
{
int tmp = a ^ b; //相加
b = ((unsigned int) (a & b) 1); //进位
a = tmp;
}
return a;
}
};
文章标题:面试题65:不用加减乘除做加法(C++)
文章链接:http://soscw.com/index.php/essay/46815.html