Peter抽烟。他抽烟一个个地抽着烟头。从 k (k>1) 个烟头中,他可以抽一根新烟。
彼得可以抽几支烟?
输入是一系列行。每行包含两个给出n和k值的整数。
对于输入的每一行,在单独的行上输出一个整数,给出Peter可以拥有的最大香烟数量。
4 3
10 3
100 5
5
14
124
输入n之后,判断n是否大于等于k,如果是,那么:
u = n / k;
n -= u * k;
s += u;
n += u;
直到n小于k
而代码可以简写为:
s += n / k;
n -= n / k * (k-1);
#include
using namespace std;
int main()
{
int n,k,s=0;//定义n,k,总和和能抽的香烟数量
while(cin>>n>>k){//当有输入时输入
s=0;//初始化
s+=n;//先把所有香烟抽完
while(n>=k){//当剩下的烟可以换时
s+=n/k;//总和增加新抽的烟数
n-=n/k*(k-1);//减少烟蒂
}
cout<<s<<endl;//输出
}
return 0;
}
手机扫一扫
移动阅读更方便
你可能感兴趣的文章