發表文章

目前顯示的是 10月, 2017的文章

E-tutor [程式設計][C_MM080-易] 音樂CD盒

圖片
簡介 題目來源:e-tutor平台 [C_MM080-易] 音樂CD盒 這個題目大家第一眼看時,可能會覺得很亂,分成兩種 CD 盒,兩種 CD 盒的價錢與容量也都不盡相同,而在題目只給有多少片 CD 的情況下,詢問到底該怎麼裝才會最省錢,那我們該怎麼找出最省錢的方法呢? 讓我們先了解題目內容 問題描述: 小明是個很喜歡聽音樂的人,他擁有很多音樂 CD ,現在他想要買 CD 盒來裝 CD 。市面上只有兩種 CD 盒,一種可以裝 n 1 片並且售價  d 1 元,另一種可以裝 n 2 片並且售價 d 2 元。小明希望買到的 CD 盒在使用上都是裝滿的,而且希望花最少的錢來買。現在請你幫小明寫一個程式來決定小明該買這兩種盒子各多少個才好。 Input: 輸入總共有三列資料。第一列是輸入一個正整數 N (小明的 CD 數),第二列是輸入正整數 n 1 、 d 1 ,第三列是輸入正整數 n 2 、 d 2 , (1 ≤ N 、 n 1 、 d 1 、 n 2 、 d 2 ≤ 1000000) 。 Output: 輸出為一列資料,包含兩個大於等於零的整數分別代表兩種盒子買的數量,如果找不到滿足題意的解,就輸出 ”false” 。 範例: 解題想法: 兩種 CD 盒到底該各買多少個才能分配完所有的 CD,可以設定雙重迴圈,來記錄兩種 CD 盒取或不取的紀錄,並且把所有的可能都記錄下來,再來找取最佳的組合。 ※以下把兩種 CD 盒稱為 A 與 B 第一步、要先處理輸入,宣告題目所需的條件 1. CDnumber 為 CD 總數 2. n1 、 n2 分別為兩種 CD 盒的容量 3. d1 、 d2 分別為兩種 CD 盒的價錢 這裡多設置了一個之後會使用到的計數器 count 使用 vector 功能 建立了 3 個一維陣列,分別用來儲存 A、B 兩種 CD 盒的數量以及最後花費的價錢 接著輸入題目要求的變數 第二步、找尋所有可能的組合 設置雙重迴圈,來列舉所有的組合 第一個迴圈:A 種 CD 盒從 0 個開始,直到大於 n1 / CDnumber 時停。 第二個迴圈:B 種 CD 盒從 0 個開始,直到大於 n2 / CDnumber 時停。 那為什...