28. Parity (CPE10461, UVA10931) - CPE一顆星解答與說明
CPE一顆星49題解答 - pdf 電子檔,售價 199 元,
購買電子檔可將筆記與完整解答帶著走,
坐車、上課時皆可隨時複習,
不受網路或廣告影響,
若有需要請來信購買 greens2314@gmail.com
題目
- 同位元定義:
- 2 進位表示法中,計算每個位元的和,除以 2 取餘數
- 例子:
- 印出數字的 2 進制,並計算 1 出現幾次
輸入說明
- 每一行有一個數字
- 當數字等於 0 時,結束處理
輸出說明
- 每行輸入,對應一行輸出
- 輸出格式:
- The parity of 2進制數字 is 數字1出現的次數(mod 2).
解題技巧
- 進制轉換
- 10 進制轉 2 進制
- 短除法
- 取商數,使用 /
- 取餘數,使用 %
解題過程
取得輸入
- 使用 while 偵測是否有數字輸入,使用 hasNextInt()
- 取得數字使用 nextInt()
判斷讀取到的數字是否為 0
- 若為 0 則呼叫 break 結束 while迴圈
使用短除法,將10 進制數字轉 2 進制
- 紀錄 1 在二進制中出現的次數,宣告 count 變數
- 紀錄轉二進制的結果,宣告 binary 變數
- 使用 while 迴圈
- 判斷被除數是否大於 0
- 將被除數除以 2 ,因為要轉成 2 進制
- 將餘數累加到 binary 字串中,取餘數要使用 %
- 判斷餘數是否為 1
- 若為 1 ,則出現次數 count 要累加
- 將商數更新至被除數,取商數要使用 /
留言
張貼留言