题目链接:P1150 Peter 的烟 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
题目背景
温馨提醒:吸烟有害健康,请勿尝试吸烟!
题目描述
Peter 有 n 根烟,他每吸完一根烟就把烟蒂保存起来,k(k>1)个烟蒂可以换一个新的烟,那么 Peter 最终能吸到多少根烟呢?
吸烟有害健康。
输入格式
每组测试数据一行包括两个整数 n, k(1 < n, k <= 10^8)。
输出格式
对于每组测试数据,输出一行包括一个整数表示最终烟的根数。
样例 #1
样例输入 #1
4 3
样例输出 #1
5
样例 #2
样例输入 #2
10 3
样例输出 #2
14
提示
对于 100% 的数据,1 < n, k <= 10^8。
AC code:
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n,k;
cin>>n>>k;
int cnt=0;
int t=0;
while(n>0)
{
cnt++; // 表示吸了一根烟,(也就是循环次数)
n--; // 吸了一根,烟总数减一
t++; // 烟蒂加一
if(t==k) // 烟蒂数量达到兑换条件
{
n++; // 每k个烟蒂兑换一个新烟,数量加1
t=0;
}
}
cout<<cnt;
return 0;
}