34. 2 the 9s (CPE10458, UVA10922) - CPE一顆星解答與說明
CPE一顆星49題解答 - pdf 電子檔,售價 199 元,
購買電子檔可將筆記與完整解答帶著走,
坐車、上課時皆可隨時複習,
不受網路或廣告影響,
若有需要請來信購買 greens2314@gmail.com
題目
- 判斷數字 N 是否為 9 的倍數,判斷 9-degree 是多少
- 例如:數字189
- 1 + 8 + 9 = 18, 18 為 9 的倍數 , 9-degree = 1
- 1 + 8 = 9, 9 為 9 的倍數 , 9-degree = 2
- 9,代表只剩個位數,不需再繼續做每一位數字的累加
輸入說明
- 測試資料有多筆
- 當數字 N = 0 ,則結束計算
- 數字包含 1000 位數
- 使用字串儲存
輸出說明
- 根據每個數字 N ,印出:
- 數字 N
- 是否為 9 的倍數
- 9-degree 是多少
解題技巧
- 將數字中每一個數字的加總
- 整數轉字串
- 字元轉數字
解題過程
取得輸入
- 判斷資料 n 是否等於 0 字串
- 結束計算
- 印出測試資料 n
- 因後面會變動資料 n,所以先印出來
使用 while 迴圈來實作無限迴圈,模擬不斷計算的過程
- 加總每一位數字
- 宣告 sum 變數,紀錄加總
- 使用 for 迴圈讀取數字中每一個字元,例如數字 189
- 將字元轉數字,有兩種方法
- 將字元 ‘8' ( = ASCII 十進位 56) 減掉字元 '0' ( = ASCII 十進位 48) ,即可得到數字 8
- 呼叫 Character.getNumericValue(‘8’),可將字元 ’8’ 轉成數字 8
- 將數字累加到加總中,例如:1 + 8 + 9
- 判斷加總是否等於 9
- 等於 9:
- 若加總等於 9 則結束計算,代表只剩個位數,不需再繼續做每一位數字的累加
- 不等於 9 :
- 將數字轉成文字,並更新給 n,準備執行下一次的 while 迴圈
- 例如:數字189,個別加總為 1 + 8 + 9 = 18,將 18 轉成字串並更新給 n 變數
留言
張貼留言