UVa10346 - Peter’s Smokes(水題)

題目大意

Peter 有 n 個大麻,每抽 k 個大麻後剩下的殘渣可以再捲成一個新大麻,Peter 總共可以抽幾個大麻

題目連結

重點觀念

  • 英文理解

分析

理論我們都知道,我們只需要紀錄 n 個香菸,然後剩下的殘渣也進行紀錄,再把超過 k 的殘渣捲成大麻,直到不能夠再組成大麻為止。

心得

不是欸,大麻不可以寫在題目上八wwww。

練習手感的一題

題目程式碼

會在下面放一些簡單註解,供大家學習時參考。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <bits/stdc++.h>
#define LOCAL
using namespace std;
int n, k, ans, component;

int main()
{
#ifdef LOCAL
freopen("in1.txt", "r", stdin);
#endif // LOCAL
while(cin >> n >> k){ //輸入資訊
ans = 0; //總共有幾個香菸 peter 可以抽
component = 0; //還有幾個殘渣可以抽
while(n){ //現在有 n 個大麻
ans += n; //peter 又有更多大麻可以抽了!
component += n; //這些大麻抽完了,多了 n 個殘渣
n = component / k; //這些殘渣可以組成新的 n 個香菸
component %= k; //還剩下幾個殘渣
}
cout << ans << '\n'; //輸出總共有幾個香菸
}
return 0;
}
  • 版權聲明: 本部落格所有文章除有特別聲明外,均採用 Apache License 2.0 許可協議。轉載請註明出處!
  • © 2020-2024 John Doe
  • Powered by Hexo Theme Ayer
  • PV: UV: