49. Sort! Sort!! and Sort!!! (CPE11069, UVA11321) - CPE一顆星解答與說明

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

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

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

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

不受網路或廣告影響,

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


題目


  • 將題目給的數字除以 M 取餘數的結果由小至大排序
    • 奇數們要排在偶數們前面,其中:
      • 奇數由大至小排列
      • 偶數由小至大排列
    • 題目的除數 M 會給負數
      • 例如除數是 3,因題目會給負數,則餘數可能為 -2,-1, 0, 1, 2

輸入說明


  • 第一行有兩個數字
    • 數字 N:接下來有 N 行,數字有 N 筆
    • 數字 M :除數
  • 最後一行 0 0 表示結束計算


輸出說明



  • 輸出數字 N 與數字 M
  • 印出根據餘數由小至大的排序結果
  • 要留意題目描述:
    • 奇數由大至小排列
    • 偶數由小至大排列



解題技巧

  • 負數的奇數偶數判斷
  • 除法
  • 串列排序


解題過程

取得輸入

  • 偵測是否有整數輸入
    • 取得數字的筆數
  • 取得除數
  • 根據數字筆數取得數字


印出數字筆數與除數
判斷是否結束計算


宣告用來儲存數字的串列變數

  • 將數字存入串列中
    • 呼叫 List 類別提供的 add() 方法
  • 將列串中的數字由小至大排序
    • 呼叫 Collections 類別提供的 sort() 方法

根據數字取餘數的結果由小至大排列數字

  • 題目給數字可能會是負數
  • 使用 for 迴圈產生可能的餘數,初始值為最小的負數餘數
    • 最小的負數餘數=  0 – 餘數 + 1
    • 例如:除數是 3,則可能的餘數為  -2, -1, 0, 1, 2
  • 逐一開始檢查數字除以除數,取餘數的結果是否等於 for 當前的餘數

先處理奇數數字的排序並印出

  • 使用 for 迴圈產生由大至小的索引,即可讀取串列中由大至小的數值
    • 取得數字,呼叫 List 類別提供的 get() 方法
    • 判斷數字使否為奇數除以 2 餘數為 1
      • 因數字可能為負數,所以先取絕對值,呼叫 Math.abs() 方法
    • 判斷數字除以除數,其餘數是否等於當前的餘數
      • 若符合上述兩個條件,則將數字印出

再處理偶數數字的排序並印出,邏輯與上述步驟相似

  • 使用 for 迴圈產生由小至大的索引,即可讀取串列中由小至大的數值
    • 取得數字,呼叫 List 類別提供的 get() 方法
    • 判斷數字使否為偶數除以 2 餘數為 0
      • 因數字可能為負數,所以先取絕對值,呼叫 Math.abs() 方法
    • 判斷數字除以除數,其餘數是否等於當前的餘數
      • 若符合上述兩個條件,則將數字印出



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

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

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

不受網路或廣告影響,

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



留言

這個網誌中的熱門文章

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

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

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