題目連結
題意:
每組測資包含兩個數字(位數不一定相同),計算加法過程進位的次數
解法:
必須從個位開始,因為前一位的進位可能影響下一位數。
因此,如果有進位,計算下一位時要特別加上。
另外,位數不同也要能計算,如: 99跟1,個位發生進位。
十位只有9,加上個位進位,所以也有進位,答案是2次。
程式(Java):
題意:
每組測資包含兩個數字(位數不一定相同),計算加法過程進位的次數
解法:
必須從個位開始,因為前一位的進位可能影響下一位數。
因此,如果有進位,計算下一位時要特別加上。
另外,位數不同也要能計算,如: 99跟1,個位發生進位。
十位只有9,加上個位進位,所以也有進位,答案是2次。
程式(Java):
你好,我最外圍迴圈的寫法是while(A!=0 && B!=0)
回覆刪除可是當我輸入100和0的時候,竟然和輸入0和0的情況一樣,什麼都不做就直接跳出去了,想請教一下為什麼會這樣呢
對齁!真是不好意思見笑了,問了個笨問題!^^u
回覆刪除不過還有個想問的地方,不知道是否方便再打擾呢?因為我個人的寫法是習慣在進入迴圈之前就先把變數做宣告(我的程式:https://paste.plurk.com/show/2696073/)
然後我在cmd裡面測試,無論是99 1、100 0或其他數字都是ok的,但是丟到uva以後卻都顯示為錯誤。
後來我測了很久,最後像大大您一樣,把變數的宣告寫在迴圈開頭,把最外圍的while條件改成true,以及加上if{break}的片段才通過。(成功的程式:https://paste.plurk.com/show/2696074/)
想請教一下真的是我的寫法有問題嗎?
每一組測資都必須從新開始計算,變數都要重設 所以只要記得在迴圈執行每一步前先重設即可 仔細看你的兩支程式,其實兩種寫法都沒錯 第一種重設寫在外面的 while(A!=0 || B!=0) 結尾 第二種寫在 while(true) 之後 只是第一種你漏掉了 carry = 0 (也因此只有在少部分會出錯)
刪除