6+9=15 看起來似乎是沒問題的。可是為什麼 4+6=2 呢?
如你所見,Mofiz 在數位邏輯課中始終非常努力,然而在某次考試中 Mofiz 執行一個範圍為 32bit 的加法時,他在設計的部份犯了一些錯誤。經過了半小時後,他終於發現問題所在了!當他在執行二進位加法的過程中,原本進位時該補 1 到下一位卻沒有補,以致於進位動作沒有完全。就像下例一樣:
4 = 00000000 00000000 00000000 00000100
+6 = 00000000 00000000 00000000 00000110
------------------------------------------------------
2 = 00000000 00000000 00000000 00000010
對 Mofiz 來說,能夠發現問題所在是件好事,可惜似乎有點太晚了。講師考慮到 Mofiz 上課的用心,決定再給 Mofiz 一次機會。這次 Mofiz 必須設計出一個有效率的程式,這個程式能夠將 2 個無正負號 10 進位的整數相加,並輸出兩者的和 (以 10 進位表示),而加法的運算方式必須像 Mofiz 剛剛的做法一樣,也就是進位時不補 1 到下一位。
每組測試資料一列,有 2 個 10 進位的無正負號整數。整數的範圍<= 2^32。
對於每組測試資料,輸出 1 個 10 進位的無正負號整數 -- 這個整數為使用 Mofiz 方法作兩數相加的和。
4 6 6 9
2 15
翻譯來自uniDog
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
42804 | avew.yone@gm ... (05 5) | c222 | 49 | 2024-10-04 10:50 | |
15277 | wish.rirf@gm ... (C++ 與我) | c222 | 1213 | 2018-09-25 06:51 |