題目描述:
不使用運算子 + 和 - ,計算兩整數 a 、b 之和。
示例 1:
輸入: a = 1, b = 2
輸出: 3
示例 2:
輸入: a = -2, b = 3
輸出: 1
思路概述:
不使用 + - 號計算,那就考慮使用位運算,位運算的用法可以參考我的另一篇筆記
位運算介紹
求和分兩步,第一步是各位相加,第二步是進製操作,在位運算中,各位相加只有1或0,而什麼時候會得到 1 呢?就是兩個數,乙個是1 ,乙個是0,這就可以通過 ^ (異或)來操作。
同理,什麼時候進製呢?兩個都是1的情況,那就可以用到 & (與)來操作,記得要在後面加乙個<<1,來進行進製操作
這是乙個迴圈的過程,先相加,再進製,再相加,再進製……什麼時候結束了呢?進製為0,也就是不需要進製操作後。因此,**如下
解法:
class
solution
return a;
}}
371 兩整數之和
不使用運算子 class solution def getsum self,a int,b int int mask 0x100000000 整型最大值 max int 0x7fffffff min int 0x80000000 while b 0 計算進製 carry a b 1 取餘範圍限制在 ...
371 兩整數之和
題目 不使用運算子 和 計算兩整數a b之和。示例 示例1 輸入 a 1,b 2 輸出 3 思路 位運算 可以發現,在位運算中的加法 不考慮進製1 就是異或運算的結果。但是僅僅有異或運算是不夠的,我們還需要知道,何時發生了進製,這就需要用到 運算 注意到 運算得到的進製1需要移1位來得到實際真實的進...
371 兩整數之和
1.題目 不使用運算子 和 計算兩整數 a b 之和。示例 1 輸入 a 1,b 2 輸出 3示例 2 輸入 a 2,b 3 輸出 12.分析 在不採用加法和減法的前提下計算兩整數之和,這需要使用與運算子和異或運算子,首先,利用與運算 a b,計算出 a 和 b 所有進製的位置,然後將其左移一位,這...