ZeroJudge C079: Peter’s Smokes

同題: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

發佈留言