【試題描述】寫乙個函式,求兩個整數的和,要求在函式體內不得使用加減乘除四則運算符合。
基本思路是這樣的:
int a, b;考慮二進位制加法的過程,a&b //看哪幾位有進製
a^b //不帶進製加
步驟一、a^b,能夠得到沒有進製的加法。
步驟二、a&b,能夠得到相加之後,能夠進製的位置的資訊。向左移動一位,就是兩個二進位制數相加之後的進製資訊。所以,(a&b)<<1就是兩個二進位制數相加得到的「進製結果」。
步驟三、將前兩步的結果相加。相加的過程就是步驟一和步驟二,直到不再產生進製為止。
【參考**】
1public
static
int func2(int a, int
b) while (carry != 0);
12return
sum;
13 }
面試題65 不用加減乘除做加法
面試題65 不用加減乘除做加法 題目 寫乙個函式,求兩個整數之和,要求在函式體內不得使用 四則運算符號。思路 首先看十進位制是如何做的 5 7 12 三步走 第一步 相加各位的值,不算進製,得到2。第二步 計算進製值,得到 10.如果這一步的進製值為 0,那麼第一步得到的值就是最終結果。第三步 重複...
面試題65 不用加減乘除做加法
題目 寫乙個函式,求兩個整數之和,要求在函式體內不得使用 四則運算符號。public class solution return num1 首先看十進位制是如何做的 5 7 12,三步走 第一步 相加各位的值,不算進製,得到2。第二步 計算進製值,得到10.如果這一步的進製值為0,那麼第一步得到的值...
Java 面試題65 不用加減乘除做加法
思路 首先看十進位制是如何做的 5 7 12,三步走 第一步 相加各位的值,不算進製,得到2。第二步 計算進製值,得到10.如果這一步的進製值為0,那麼第一步得到的值就是最終結果。第三步 重複上述兩步,只是相加的值變成上述兩步的得到的結果2和10,得到12。同樣我們可以用三步走的方式計算二進位制值相...