# (UVA10346) Peter's Smokes : ## code ```cpp! // 內容 // Peter有 n 支紙煙,他一支一支的抽並且把煙屁股留起來。當他有 k 支煙屁股(k>1)時他可以把它們捲成一支新的紙煙。 // 請問Peter共可以抽幾支紙煙? // 輸入說明 // 每筆測試資料一列。每列有2個整數 n,k。 // 輸出說明 // 對每一列輸入,請輸出Peter共可以抽幾支紙煙。 // 範例輸入 #1 // 4 3 // 10 3 // 100 5 // 範例輸出 #1 // 5 // 14 // 124 #include <iostream> using namespace std; int main() { int n, k; while (cin >> n >> k) { int total_smokes = n; // 總共能抽的煙數 int butts = n; // 總共累積的煙蒂數 // 只要煙蒂數足夠換至少一支新煙 while (butts >= k) { int new_smokes = butts / k; // 可以換得的新煙數 total_smokes += new_smokes; // 總共抽的煙數增加 butts = butts % k + new_smokes; // 更新煙蒂數 (剩餘的煙蒂 + 新抽的煙產生的煙蒂) } cout << total_smokes << endl; // 輸出結果 } } ``` ## 思路 那麼簡單還需要思路喔