[剑指Offer]65-不用加减乘除做加法

题目

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

题解

用位运算模拟加法的三步:

  • 无进位加法:异或运算。
  • 进位:与运算再左移一位。
  • 直到进位为0结束。

代码

public class Main {
    public static void main(String[] args) {
        System.out.println(Add(5,17));
    }
    public static int Add(int num1,int num2) {
        int sum=0;
        int carry=0;
        do {
            sum=num1^num2;
            carry=(num1&num2)<<1;
            num1=sum;
            num2=carry;
        }while(carry!=0);
        return sum;
    }
}

猜你喜欢

转载自www.cnblogs.com/coding-gaga/p/11142519.html
今日推荐