不用加减乘除做加法

不用加减乘除做加法

http://www.nowcoder.com/questionTerminal/59ac416b4b944300b617d4f7f111b215

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

public class Solution{
    public int Add(int num1,int num2) {
        int result;
        int ans;
        do{
            result = num1 ^ num2;//求异或,即各位值
            ans = (num1 & num2) << 1;//求与再进1位,即进位值
            num1 = result;
            num2 = ans;//重复前两步
        }while(ans!=0);//直到进位为0,结束
        return result;
    }
}
/*无进位和运算就是按位异或结果,进位就是与运算结果但是需要左移一位,因为进位影响下一位的运算。
所以s = a + b,其实就是无进位和+进位的结果。*/
全部评论

相关推荐

dian3b:挺妙的,如果上纲上线显得不合人心,但是这样以来既能监督适当摸鱼,也有一定的人文关怀。
摸鱼被leader发现了...
点赞 评论 收藏
分享
昨天 16:31
已编辑
桂林电子科技大学 Python
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务