不用加減乘除做加法

題目描述

寫一個函數,求兩個整數之和,要求在函數體內不得使用+、-、*、/四則運算符號。

解法

不能用四則運算——》位運算
異或:計算加法
(num1&num2)<<1 ——》用於計算進位
temp + num2 循環計算
直到進位爲0爲止

public class Solution {
    public int Add(int num1,int num2) {
        while (num2!=0) {
            int temp = num1^num2;//加法
            num2 = (num1&num2)<<1;//計算進位
            num1 = temp;
        }
        return num1;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章