代码运行正常 无法得到预期结果,如何解决?

代码运行正常 无法得到预期结果

img


输入1000 结果与答案不符合
但感觉思路没错

不需要用while的啊,又没有多组测试数据啊

int dp[20190325];
int main()
{
    dp[0] = dp[1]= dp[2] = 1;
    int n;
    scanf("%d",&n);
    for(int i=3;i<n;i++)
    {
        dp[i] = (dp[i-1] + dp[i-2] + dp[i-3])%10000;
    }
    printf("%d\n",dp[n-1]);
}

不需要用while循环,scanf放在外面即可,main函数修改如下:

int main()
{
    int n;
    dp[1] = 1;
    dp[2] = 1;
    dp[3] = 1;
    scanf("%d", &n);
    for (int i = 4; i <= n; i++)
    {
        dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3];
    }
    printf("%d\n", dp[n] % 1000);
    return 0;
}

参考这段代码:

#include <iostream>

using namespace std;
int num[20190330];

int main()
{

    for(int i=1;i<=20190324;i++){
        if(i<=3){
            num[i] = 1;
        }else{
            num[i] = (num[i-1] + num[i-2] + num[i-3]) % 10000;
        }
    }
    printf("%d",num[20190324]);
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632