赞
踩
牛客网题目——不用四则运算符号,计算两个数字的和
这道题的关键在于理解二进制如何执行两个数的加和操作。
二进制每位相加就相当于各位做异或操作;因此解法大致可以分为两步:
第一步:相加各位的值(下一步再计算进位值);
第二步:计算进位值。
重复上述操作就能得到最终的加和。
代码如下:
class Solution { public: int Add(int num1, int num2) { while(num2 != 0) { int sum = num1^num2; %各位直接相加,进行异或操作 int next = (num1&num2)<<1; %计算进位值 num1 = sum; num2 = next; } return num1; } };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。