劍指offer 不用加減乘除做加法

2021-08-14 04:17:35 字數 480 閱讀 6200

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

分析:之前自己手動yy了一下,直接用二進位制進行位運算,然後沒考慮負數,直接wa,接著仔細分析,數分四種情況(a>0,b>0;a>=0,b<=0;a<0,b>0;a<0,b<0),然後計算,注意進製或者借位的情況就ok了,比較複雜。

class solution 

}else if( num1 < 0 && num2 > 0)

else if( num1 < 0 && num2 < 0)

bool carry = false;

bool borrow = false;

int cnt = 0;

while( num1 || num2)

if( flag && carry)

ans = ans^(1<

class solution

}};

劍指offer 不用加減乘除做加法

題目描述 寫乙個函式,求兩個整數之和,要求在函式體內不得使用 四則運算符號。輸入 輸入可能包含多個測試樣例。對於每個測試案例,輸入為兩個整數m和n 1 m,n 1000000 輸出 對應每個測試案例,輸出m n的值。樣例輸入 3 4 7 9樣例輸出 7 16思路 1 先將各bit位相加,不計進製,這...

劍指offer 不用加減乘除做加法

題目描述 寫乙個函式,求兩個整數之和,要求在函式體內不得使用 四則運算符號。思路 本道題用乙個例子講解可能會更為清晰點。現舉5 7 12的例子來說明 1.將兩個數字轉化為二進位制 5 0101 7 0111,將兩個數做異或操作 即相當於加法的不進製操作 5 7 0101 0111 0101 2.計算...

劍指offer 不用加減乘除做加法

冥思苦想做個記錄。題目 寫乙個函式,求兩個整數之和,要求在函式體內不得使用 四則運算符號。第一步 例如5加7等於12,首先不計算進製,則為2,計算進製為10 2.注意這裡只能進一位,因為是十進位制,則進一位就變為10.所以最後相加為2 10 12 第二步 怎麼判斷是否還要繼續進製?5 7大於10,需...