不用 數字運算子做加法

2021-09-27 03:42:57 字數 542 閱讀 4999

看到這個的題目第乙個反應就是位運算,但是想不通怎麼進行位運算,看了後面才知道,博主舉了個例子就是5+17

不進製,算出5+17=12,如下圖,就是小學生的運算,下面的1就是進製

這樣最後12+十位的1就是22

同樣,二進位制也可以,5的二進位制是101,17是10001,運算方法

+  10001

+       10

最後運算就是10110就是22了

從這裡也可以看出來,二進位制裡面,1+1和0+0,原位為0,1+0原位為1,和異或很像吧

而進製呢,對0加

0、0加

1、1加

0而言,都不會產生進製,只有1加

1時,會向前產生乙個進製,而進製相當於《一位,這樣就可以開始寫程式了

1

intaddwithoutarithmetic(

intnum1,

intnum2)2

不用 數字運算子做加法

題目 寫乙個函式,求兩個整數的之和,要求在函式體內不得使用 分析 這又是一道考察發散思維的很有意思的題目。當我們習以為常的東西被限制使用的時候,如何突破常規去思考,就是解決這個問題的關鍵所在。看到的這個題目,我的第一反應是傻眼了,四則運算都不能用,那還能用什麼啊?可是問題總是要解決的,只能開啟思路去...

CI20 1 不用運算子做加法

實現乙個函式求兩個數的和。不可以用 或其他運算符號。思路 直觀的思路是通過位運算來做加法。第一步 先不考慮進製,將兩個數通過異或可以求得對應位的和 第二步 考慮進製,將兩個數通過與運算可以求得哪些位有進製,然後將該結果左移一位,再和第一步中的結果進行異或,一直迭代制導進製的結果為0。include ...

刷題演算法 不用 運算子求加法

題目來自於lintcode 第1題 a b問題 題目如下 給出兩個整數a和b,求他們的和,但不能使用 等數 算符。一般數值進行加法,比如兩個數,a 9,b 7。當進行十進位制加法的時候,1.先算各個位數,2.然後得到進製,3.最終將進製加上前一位。由於不用加運算子,只能從位運算進行入手。由於我的自動...