美文网首页
剑指offer | 不用加减乘除做加法

剑指offer | 不用加减乘除做加法

作者: icebreakeros | 来源:发表于2019-07-31 12:37 被阅读0次

    不用加减乘除做加法

    写一个函数,求两个整数之和

    示例
    输入:1 2
    输出:3

    思路:将加法分为三步:相加不计进位(异或),记下进位(先做位与运算,再向左移动一位),把前两个步骤的结果相加(相加过程依然是重复前两步,直到不产生进位为止)

    public class AddTwoNumbers {
    
        public int add(int m, int n) {
            int sum = 0;
            int carry = 0;
            do {
                sum = m ^ n;
                carry = (m & n) << 1;
                m = sum;
                n = carry;
            } while (n != 0);
            return m;
        }
    }
    
    

    相关文章

      网友评论

          本文标题:剑指offer | 不用加减乘除做加法

          本文链接:https://www.haomeiwen.com/subject/yevzrctx.html