【题目来源】
https://www.luogu.com.cn/problem/P1150
【题目描述】
Peter 有 n 根烟,他每吸完一根烟就把烟蒂保存起来,k(k>1)个烟蒂可以换一个新的烟,那么 Peter 最终能吸到多少根烟呢?
与某些脑筋急转弯不同的是,Peter 并不能从异次元借到烟蒂,抽完后再还回去。
【输入格式】
每组测试数据一行,包括两个整数 n,k(1<n,k≤10^8)。
【输出格式】
对于每组测试数据,输出一行包括一个整数,表示最终烟的根数。
【输入样例1】
4 3
【输出样例1】
5
【输入样例2】
10 3
【输出样例2】
14
【说明/提示】
对于 100% 的数据,1<n,k≤10^8。
【算法分析】
注意:每轮计算后,剩余的烟的根数为 n=n/k+n%k;
【算法代码】
#include <bits/stdc++.h>
using namespace std;int n,k;
int ans;int main() {cin>>n>>k;ans=n;while(n>=k) {ans+=n/k;n=n/k+n%k;}cout<<ans;return 0;
}/*
in:
2 2out:
3
*/
【参考文献】
https://www.luogu.com.cn/problem/solution/P1150
https://www.luogu.com.cn/article/gbwlcvv2