为什么WA?

P1009 [NOIP1998 普及组] 阶乘之和

cxoi1711 @ 2025-01-10 22:54:48

#include<bits/stdc++.h>
using namespace std;
long long n,k,kk;
long long a[10010],b[10010];
void chengfa(long long j){
    for(long long i=1;i<=k;i++)a[i]*=j;
    for(long long i=1;i<=k;i++){
        if(a[i-1]>9){
            a[i]+=a[i-1]/10;
            a[i-1]%=10;
        }
    }
    while(a[k]>9){
        a[++k]=a[k-1]/10;
        a[k-1]%=10;
    }
}
void jiafa(){
    kk=max(kk,k);
    for(long long i=1;i<=kk;i++){
        b[i]+=a[i];
        b[i+1]+=b[i]/10;
        b[i]%=10;
    }
    if(b[kk]>9){
        b[++kk]=b[kk-1]/10;
        b[kk-1]%=10;
    }
}
int main(){
    cin>>n;
    for(long long i=1;i<=n;i++){
        memset(a,0,sizeof a);
        k=0;
        a[++k]=1;
        for(long long j=1;j<=i;j++){
            chengfa(j);
        }
        jiafa();
    }
    for(long long i=kk;i>=1;i--)
        cout<<b[i];
}

这是P1009的代码,可是不知道什么原因,全部 WA 了。希望各位大佬指点!


|