POJ 2509 Peter's smokes(Peter的香烟)
阅读原文时间:2023年07月08日阅读:2

POJ 2509 Peter的香烟

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;
}

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章