这个题我少考虑什么了吗,为什么我的不对呢

img

img

你代码没有满足题目。加入m=100,k=3
那么a=m/k=33,意思是100元每花3元奖励1元,共奖励33元,但这33元还得花啊,每花3元还可以奖励1元,等于33元还会奖励11元,11元海辉奖励3元,3元还会奖励1元。
所以得到n=m+a后,你要继续循环判断n的奖励

这是一个递归问题。代码如下:


#include <stdio.h>

int fun(int m,int k,int s)
{
    if(m == 0)
        return 0;
    else
    {
        if(s == k)
            m = m+1;
        return 1 + fun(m-1,k,s+1);
    }
}

int main()
{
    int m,k,day = 0;
    scanf("%d %d",&m,&k);
    day = fun(m,k,0);
    printf("%d",day);
    return 0;
}

a=m/k
只是用初始的m元获得的奖励
a继续花下去,每满k元还有奖励
这是个级数问题,你不用循环做也该写出级数求和公式来做

有没有想到奖励的钱可以满足下一次奖励