帮忙修改一个c++的程序

2025-05-12 23:25:38
推荐回答(1个)
回答(1):

#include"stdio.h"
#include"string.h"
const int maxn=40000;

int main()
{
    int i,j;
    int n;
int f[maxn];
    while(scanf("%d",&n)!=EOF)
    {
        memset(f,0,sizeof(f));
        f[0]=1;
        for(i=2;i<=n;i++)
        {
            int c=0;
            for(j=0;j            {
                int s=f[j]*i+c;
                f[j]=s%10;
                c=s/10;
            }
        }
        for(j=maxn-1;j>=0;j--)
        if(f[j])
        break;
        for(i=j;i>=0;i--)
          printf("%d",f[i]);
        printf("\n");  
    }
    return 0;
}

 我的不行吗测试过了啊

你的代码不符合题意,你数组里存的是1,2,6,24.。。。。。。他要的是并不是输出N的话从1到N的每个数的阶乘只有N这个数的阶乘