模拟要一步步来,每一回合都会吸一根
long long n,k,gs,yt;
int main()
{
cin>>n>>k;//输入原本有的根数和兑换要求
while(n!=0)
{
n--;//吸烟
yt++;//烟头增加
if(yt==k)n++,yt=0;//换烟
gs++;//吸的根数加
}
cout<<gs;//输出根数
return 0;
}
注意要初始化为零,如果比较懒可以写在外面,不过效率不是很高
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,k;
cin>>n>>k;
cout<<n+(n-1)/(k-1);
return 0;
}
这里推理了一下公式