27. Funny Encryption Method (CPE10403, UVA10019) - CPE一顆星解答與說明

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

CPE一顆星49題解答 - pdf 電子檔,售價 199 元,

購買電子檔可將筆記與完整解答帶著走,

坐車、上課時皆可隨時複習,

不受網路或廣告影響,

若有需要請來信購買 greens2314@gmail.com


題目



  • 讀取一個數字,並輸出 b1 和 b2

輸入說明


  • 第一行的數字 N 是宣告接下來有幾筆資料
  • 每一行包含一個十進位數字的 M



輸出說明


  • 輸出 N 行,每一行包含 b1b2 
  • b1b2 中間要以空白隔開



解題技巧


  • 進制轉換
    • 10 進制轉 2 進制



    • 2 進制轉 10 進制



    • 16 進制轉 10 進制

  • 短除法
    • 取商數,使用 /
    • 取餘數,使用 %


解題過程

取得輸入

  • 取得資料筆數,使用 nextInt() 
  • 根據資料筆數,使用 for 迴圈讀取資料
    • 讀取數字 nextInt() 


使用短除法,將10 進制數字轉 2 進制

  • 紀錄 1 在二進制中出現的次數,宣告 count 變數
  • 使用 while 迴圈
    • 判斷被除數是否大於 0
      • 被除數除以 2 ,因為要轉成 2 進制
      • 判斷餘數是否為 1 ,取餘數要使用 %
        • 若為 1 ,則出現次數 count 要累加
      • 商數更新至被除數,取商數要使用  /

將 16 進制數字轉 2 進制


將 16 進制數字轉 2 進制 - 步驟 1

把 256(16進制) 轉成 10 進制

  • 宣告 hexToDecimalNumber 變數,儲存轉10進制的結果
  • 宣告 power 變數,紀錄次方數
  • 使用 while 迴圈,取得數字中的每一位數字
    • 每一位數字 = 數字除以 10 取餘數,使用 %
    • 將每一位數字 乘上 16 (進制)所對應的次方數
      • 使用 Math.pow( 數字, 次方 ) 方法
    • 將計算結果累加到 hexToDecimalNumber 變數
    • 更新被除數 = 數字除以 10 取商數,使用 /
    • power 次方數每次累加1



將 10 進制數字轉 2 進制 - 步驟 2

  • 重構此區的程式碼,根據題目需求,轉 2 進制會須要處理兩次,故宣告成方法,方便使用
    • 10 進制轉 2 進制
    • 16 進制轉 2 進制

  • 宣告方法
    • public    static           int                 getBinaryOneCount         (int number)                             {}
    •   公開    靜態   回傳值的型別            方法名稱           (宣告須傳入的參數)  大括號內寫程式碼

  • 呼叫方法 
    • 直接 getBinaryOneCount(傳入變數)

  • 回傳方法計算的結果
  • return



印出結果




CPE一顆星49題解答 - pdf 電子檔,售價 199 元,

購買電子檔可將筆記與完整解答帶著走,

坐車、上課時皆可隨時複習,

不受網路或廣告影響,

若有需要請來信購買 greens2314@gmail.com

留言

這個網誌中的熱門文章

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

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

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