同題:UVa 10346 – Peter’s Smokes
Peter 有 N 支紙煙,他一支一支的抽並且把煙屁股留起來。當他有 K 支煙屁股 (K > 1) 時,他可以把它們捲成一支新的紙煙。
請問 Peter 共可以抽幾支紙煙?
範例測資
範例輸入 | 範例輸出 |
---|---|
EOF 輸入,每筆測試資料一列。每列有 2 個整數 N 和 K。 | 對每一列輸入,請輸出 Peter 共可以抽幾支紙煙。 |
4 3 10 3 100 5 | 5 14 124 |
解題思路
使用 While迴圈,每次吸一隻煙後就煙尾巴+1,每次判斷現在的煙尾巴可不可以在換成一條煙,如果「沒有煙了」&&「煙尾巴 < K」,那就中止迴圈輸出答案。
範例程式碼-ZeroJudge C079: Peter’s Smokes
#include <iostream>
using namespace std;
int main() {
int N, K;
while (cin >> N >> K)
{
int ans = 0, count = 0;
while (true)
{
if (N > 0)
{
ans++;
count++;
N--;
}
else if (count >= K)
{
ans++;
count-=K;
count++;
}
else break;
}
cout << ans << endl;
}
}
//ZeroJudge C079
//Dr. SeanXD