不用加减乘除做加法_JAVA_简单

不用加减乘除做加法

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

  • 加法可以分为不包含进位的加法(异或)和进位(与操作再左移)
  • 每次计算不包含进位的加法和进位,如果无进位,则不包含进位的加法计算出来的就是结果,如果有进位,则将不包含进位的加法算出来的而结果和进位算作两个数再相加
public class Solution {
    public int Add(int num1,int num2) {
        int sum = 0, carry = -1;
        // 如果进位为0则sum计算值是正确的
        while(carry != 0) {
            // 没有进位的加法
            sum = num1 ^ num2;
            // 单纯的进位
            carry = (num1 & num2) << 1;
            num1 = sum;
            num2 = carry;
        }
        return sum;
    }
}
全部评论

相关推荐

就是大飞舞:不能发,我暑假找实习的时候就被坑过,把你简历锁了,然后不给你推进度,你还投不了别的部门
点赞 评论 收藏
分享
10-30 10:16
南京大学 Java
龚至诚:给南大✌️跪了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务