c++递归写题,2,3点WA,求助!

P1150 Peter 的烟

Re_forsunrise @ 2022-08-19 06:07:45

是的是的又是我,跟P1150杠上了,用递归解的时候2,3点WA了,错误应该在2,3,4行但不知道怎么改,望有哪位dalao可以帮我一下……


using namespace std;
int smoke(int n,int k)
{
    int num=0,x=0;//x为烟蒂数量 
    num+=n;//吸完第一批演烟 
    x+=n;//第一批烟的烟蒂数 
   if(x>=k)
    {
        num+=x/k;
        x=x%k+x/k;
        smoke(x,k);
    }
    return num;
}
int main() 
{
int n,k,num=0;
cin>>n>>k;
num=smoke(n,k);
cout<<num;
    return 0;
}

by Hhggi @ 2022-08-19 07:30:17

@zhangshuo0407 你x每次递归重置,保存不了上一次还剩的,你可以把x写入参数,或者用循坏。


by Re_forsunrise @ 2022-08-19 10:11:23

@Hhggi 谢谢啦


|