c语言,第四点wa,求助

P1009 [NOIP1998 普及组] 阶乘之和

jietua @ 2022-11-16 17:21:48

如题,代码如下

#include<stdio.h>
int main(){
    int Sn[10001]={0};
    int n;
    int y=0;
    scanf("%d",&n);
    for(int nn=1;nn<=n;nn++){

        int a[10001]={0};
        a[0]=1;
        int x=0;
        int b;
        for(int i=1;i<=nn;i++){
            b=0;
            for(int j=0;;j++){
                x=(j>x)?j:x;
                a[j]*=i;
                a[j]+=b;
                b=a[j]/10;
                a[j]%=10;
                if(a[j]==0&&b==0&&j>=x) break;
            }
        }//求得单个n!

        int tmp=0;
        for(int i=0;;i++){
            y=(i>y)?i:y;
            Sn[i]+=a[i];
            Sn[i]+=tmp;
            tmp=Sn[i]/10;
            Sn[i]%=10;
            if(Sn[i]==0&&tmp==0&&i>=y) break;
        }
    }
    for(int i=y-1;i+1;i--){
        printf("%d",Sn[i]);
    }
    return 0;
}

|