5. You can say 11 (CPE10460, UVA10929) - CPE一顆星解答與說明

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


題目



    判斷數字 N 是否為 11 的倍數

輸入說明


  • 每一列有一個數字 N 
  • 當 N =  0 結束計算


輸出說明


    輸出判斷結果



解題技巧

  • 取得字串中的每一個字元
  • 字元轉數字
  • 使用特殊判斷公式
    • 因為題目測資會給這麼大的數字,無法使用數字型態儲存
      • 298185292359669849565547163428536251646141545298393227596984875428967528488726855878466751597371655971893193997633655638488164238361645427446896169518348432 
    • 使用特殊公式,根據索引判斷是否為奇數或偶數:
      • 奇數 (除以2餘1) 位數字和
      • 偶數 (除以2餘0) 位數字和
      • 利用兩者相減的數值是否為 11 的倍數
        • 是:數字 N 是 11 的倍數
        • 否:數字 N 不是 11 的倍數





解題過程

取得輸入

  • 使用 String 型態讀取測試資料
  • 若資料等於 "0" 字串,則結束計算

計算奇數位數字和偶數位數字和

  • 使用 for 迴圈,逐一讀取字串中的每一個字元,可使用 String 類別提供的 charAt(i) 方法
    • 將字元轉數字,以方便計算,以下兩種方法則一種使用
      • 將字元 '6' ( = ASCII 十進位 54) 減掉字元 '0' ( = ASCII 十進位 48) ,即可得到數字 6
      • 呼叫 Character.getNumericValue(‘6’),可將字元 ’6’ 轉成數字 6

    • 判斷目前的索引位置是奇數還是偶數將索引除以 2 取餘數
      • 餘數 0 為偶數,將數字累加到偶數位數字和
      • 餘數 1 為奇數,將數字累加到奇數位數字和

判斷奇數位數字和 — 偶數位數字和是否為 11 的倍數

  • 是:數字 N 是 11 的倍數
  • 否:數字 N 不是 11 的倍數
  • 印出結果


留言

這個網誌中的熱門文章

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

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

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