ZeroJudge B186: 97七區資訊學科1(改編)

題目敘述

題目採EOF方式收資料,每筆資料有三個正整數,分別代表餅乾、巧克力、和蛋糕。每10個餅乾和2個蛋糕就可以多贈送一個巧克力。要求輸出最後的餅乾、巧克力、和蛋糕的數量 (詳細輸出格式請參照輸出範例)。


範例輸入

12 6 3

範例輸出

12 個餅乾,7 盒巧克力,3 個蛋糕。


解題思路

可以使用一個While迴圈,終止的條件就是當餅乾小於10或蛋糕小於2兩個情況只要一個有發生就終止迴圈。迴圈中只要將巧克力的數量+1、餅乾-10、蛋糕-2就可以了。需要注意的是餅乾和蛋糕的原始數量需存在其他兩個不會做加減的變數中才行。最後只要輸出原始的餅乾+蛋糕值和加總完的巧克力數量即可。

解題程式碼如下 (僅供參考):

#include <iostream>
using namespace std;

int main() {
    int cookie, cake, chocolate;
    while (cin >> cookie >> chocolate >> cake)
    {
        int nCookie = cookie, nCake = cake;
        while (nCookie >= 10 && nCake >= 2)
        {
            chocolate++;
            nCookie -= 10;
            nCake -= 2;
        }
        cout << cookie << " 個餅乾," << chocolate << " 盒巧克力," << cake << " 個蛋糕。\n";
    }
}

留言