10. Problem J: Summing Digits (CPE10473, UVA11332) - CPE一顆星解答與說明

   👉  CPE 一顆星選集列表(49題) 題目說明與解答


題目


  • 將讀入的數字N,將其中每個字元相加,直到剩個位數(小於 10) 為止

輸入說明

  • 每一行包含一個正整數 N 
  • 當數值為 0 時,結束處理

輸出說明

  • 根據每個正整數N,輸出計算的結果



解題技巧

  • 使用字串,取得每個字元


解題過程

取得輸入

  • 因為測試資料的筆數是動態非固定值,所以使用 while 迴圈與 scanner.hasNextLine() 來偵測是否有整行的輸入
  • 使用 scanner.nextLine() 取得資料

偵測是否結束計算

  • 若為字串" 0 "則使用 break 結束此 while 迴圈
  • 字串比對,String 是參考資料型別
    • 比對字串的文字是否相同,請使用 equals() 方法
    • 請不要使用 == 進行字串比對,== 是比對變數在記憶體上的位置

取得每個字元

  • 使用 while 迴圈判斷公式計算結果是否為個位數,因為採用字串解題,個位數可解讀成字串長度為 1
  • 當字串長度大於 1 時, 則須執行 while 迴圈的公式
  • 使用 for 迴圈與 String 的 charAt() 方法來取得每一個字元

加總每個數字

  • 將字元轉成數字,有兩種方法,擇一使用
    1. Character.getNumericValue('1')
    2. 將字元轉成字串 String.valueOf(),再將字串轉成整數 Integer.parseInt()
      • Integer.parseInt(String.valueOf('1‘))
  • 將透過 for 迴圈逐一加總每個數字的結果轉成字串

   👉  CPE 一顆星選集列表(49題) 題目說明與解答

留言

這個網誌中的熱門文章

CPE 一顆星選集題目說明與解答 - Java 筆記與心得分享

Visual Studio 自動排版格式化程式碼

1. Vito's family (CPE10406, UVA10041) - CPE一顆星解答與說明