仅供参考,未经过洛谷测试,只是能使用,如若洛谷需微修。
题目链接:P1150 Peter 的烟 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<stdio.h>
#include<math.h> //Peter的烟
int main()
{
int n,k,f;
while(scanf("%d %d",&n,&k)!=EOF)
{
if(n<=0||k>=pow(10,8)) //限制输入范围
printf("你输入的数据有错\n");
else
{
int s = n/k;
if(n-s*k+s>=k) //判断剩余烟加上新烟合起来的烟蒂是否还能再次兑换
{
f=n+(n-s*k+s); //该处原式为f=n+(n-s*k+s)/k+((n-s*k+s)-(n-s*k+s)/k);
printf("peter最后能吸到%d\n",f);
}
else
printf("peter最后能吸到%d\n",n+(n/k));
}
}
return 0;
}
如果有其他简便方法或者可以优化可以评论区交流。