看到这题,第一反应是用stack做。我们可以把 Peter 手上的烟看作一个栈,一根烟就是一个元素,抽了n支烟就从栈里pop几个,换到了n支烟就push几个。所以代码就出来了: #include<stack>#include<cstdio>usingnamespacestd;stack<bool>a;//省空间intn,k,ans=0;//不会真的有人ans不赋初值吧voidhuan(intn)...
P1150 Peter的烟 题目描述 Peter有n根烟,他每吸完一根烟就把烟蒂保存起来,k(k>1)个烟蒂可以换一个新的烟,那么Peter最终能吸到多少根烟呢? 输入输出格式 输入格式: 每组测试数据一行包括两个整数n(1<n,k<=10^8)。 输出格式: 对于每组测试数据,输出一行包括一个整数表示最终烟的根数。 输入输出样例 输入...
洛谷-P1150 Peter的烟 题目描述 Peter 有 n 根烟,他每吸完一根烟就把烟蒂保存起来,k(k>1)个烟蒂可以换一个新的烟,那么 Peter 最终能吸到多少根烟呢? 与某些脑筋急转弯不同的是,Peter 并不能从异次元借到烟蒂,抽完后再还回去。 输入格式 每组测试数据一行包括两个整数 n , k (1<n,k<=108) 输出...
#include<bits/stdc++.h>usingnamespacestd; typedeflonglongll; ll s,sum,n,k;voidsmoke(ll i) {if(i>=k) { s=s+floor(i/k); smoke(floor(i/k)+i%k); }else{return; } }intmain() { cin>>n>>k; smoke(n); s=n; smoke(n); cout<<s<<endl; } 1. 2. 3. 4. 5. 6. 7. ...
洛谷入门p1150 peter的烟题解邀月**对影 上传667B 文件格式 cpp 洛谷入门p1150 peter的烟题解 点赞(0) 踩踩(0) 反馈 所需:1 积分 电信网络下载 ZYJ_HRIR.sofa 2025-03-24 10:25:54 积分:1 YJR_HRIR.sofa 2025-03-24 10:19:39 积分:1 ...
P1150 Peter的烟【递归】 #include<bits/stdc++.h>usingnamespacestd; typedeflonglongll; ll s,sum,n,k;voidsmoke(ll i) {if(i>=k) { s=s+floor(i/k); smoke(floor(i/k)+i%k); }else{return; } }intmain() { cin>>n>>k;
P1150(Peter的烟)算法简介本题主要考察的是模拟算法 模拟算法一般考察一些比较基础的题目,它将生活中的实例融合到了编程题中。 具体要求我们只需要跟着题目一步步走即可。 但是我们要注意模拟算法同样也是很容易出错的,尤其是边界上的问题。代码#include<iostream> using namespace std; int main() { int res = ...