49. Sort! Sort!! and Sort!!! (CPE11069, UVA11321) - CPE一顆星解答與說明
CPE一顆星49題解答 - pdf 電子檔,售價 199 元,
購買電子檔可將筆記與完整解答帶著走,
坐車、上課時皆可隨時複習,
不受網路或廣告影響,
若有需要請來信購買 greens2314@gmail.com
題目
- 將題目給的數字除以 M 取餘數的結果由小至大排序
- 奇數們要排在偶數們前面,其中:
- 奇數由大至小排列
- 偶數由小至大排列
- 題目的除數 M 會給負數
- 例如除數是 3,因題目會給負數,則餘數可能為 -2,-1, 0, 1, 2
輸入說明
- 第一行有兩個數字
- 數字 N:接下來有 N 行,數字有 N 筆
- 數字 M :除數
- 最後一行 0 0 表示結束計算
輸出說明
- 輸出數字 N 與數字 M
- 印出根據餘數由小至大的排序結果
- 要留意題目描述:
- 奇數由大至小排列
- 偶數由小至大排列
解題技巧
- 負數的奇數偶數判斷
- 除法
- 串列排序
解題過程
取得輸入
- 偵測是否有整數輸入
- 取得數字的筆數
- 取得除數
- 根據數字筆數取得數字
印出數字筆數與除數
判斷是否結束計算
根據數字取餘數的結果由小至大排列數字
- 題目給數字可能會是負數
- 使用 for 迴圈產生可能的餘數,初始值為最小的負數餘數
- 最小的負數餘數= 0 – 餘數 + 1
- 例如:除數是 3,則可能的餘數為 -2, -1, 0, 1, 2
- 逐一開始檢查數字除以除數,取餘數的結果是否等於 for 當前的餘數
先處理奇數數字的排序並印出
- 使用 for 迴圈產生由大至小的索引,即可讀取串列中由大至小的數值
- 取得數字,呼叫 List 類別提供的 get() 方法
- 判斷數字使否為奇數,除以 2 餘數為 1
- 因數字可能為負數,所以先取絕對值,呼叫 Math.abs() 方法
- 判斷數字除以除數,其餘數是否等於當前的餘數
- 若符合上述兩個條件,則將數字印出
再處理偶數數字的排序並印出,邏輯與上述步驟相似
- 使用 for 迴圈產生由小至大的索引,即可讀取串列中由小至大的數值
- 取得數字,呼叫 List 類別提供的 get() 方法
- 判斷數字使否為偶數,除以 2 餘數為 0
- 因數字可能為負數,所以先取絕對值,呼叫 Math.abs() 方法
- 判斷數字除以除數,其餘數是否等於當前的餘數
- 若符合上述兩個條件,則將數字印出
留言
張貼留言