大佬们,这个代码为什么会出错啊

P1009 [NOIP1998 普及组] 阶乘之和

123456zzr @ 2022-11-25 20:34:03


using namespace std;
int a[1001]={0,1},sum[1001],n,i;
int gjc(int p)//高精度乘法
{int x=0;
    for(i=1;a[i]!=0;i++)
    {
        a[i]=a[i]*p+x;
        x=a[i]/10;
        a[i]%=10;
    }a[i]+=x;
}
int gjj(){、、高精度加法
    int x=0;
    for(i=1;a[i]!=0;i++)
    {
        sum[i]+=a[i]+x;
        x=sum[i]/10;
        sum[i]%=10;
    }sum[i]+=x;
}
int main()
{
    cin>>n;
    for(i=1;i<=n;i++)
    {
        gjc(i);
        gjj();
    }i=1001;
    while(sum[i]==0&&i>1)
    {
        i--;
    }while(i>=1)
    {
        cout<<sum[i];i--;
    }
    return 0;
 } */

by Chesapeake_Ripper @ 2022-11-28 23:00:18

头文件呢??


by 123456zzr @ 2022-11-30 11:26:52

@Breath_the_shy 头文件是万能头,忘粘了 代码:

#include<bits/stdc++.h>
using namespace std;
int a[1001]={0,1},sum[1001],n,i;
int gjc(int p)//高精度乘法
{int x=0;
    for(i=1;a[i]!=0;i++)
    {
        a[i]=a[i]*p+x;
        x=a[i]/10;
        a[i]%=10;
    }a[i]+=x;
}
int gjj(){、、高精度加法
    int x=0;
    for(i=1;a[i]!=0;i++)
    {
        sum[i]+=a[i]+x;
        x=sum[i]/10;
        sum[i]%=10;
    }sum[i]+=x;
}
int main()
{
    cin>>n;
    for(i=1;i<=n;i++)
    {
        gjc(i);
        gjj();
    }i=1001;
    while(sum[i]==0&&i>1)
    {
        i--;
    }while(i>=1)
    {
        cout<<sum[i];i--;
    }
    return 0;
 } 

|