不知道为什么错,求调

P1009 [NOIP1998 普及组] 阶乘之和

Hxxxxxxxxxx @ 2024-08-04 15:24:11

新手不知道为什么结果不对,求大佬帮调


include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,i,j;
    long long s;
    int a[51];
    fill(a,a+51,1);
    cin>>n;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=i;j++)
        a[i]=a[i]*j;
        s+a[i]=s;
    }
    cout<<s<<endl;
    return 0;
}```

by __pig__ @ 2024-08-04 15:32:26

@Hxxxxxxxxxx 要高精度


by super_JuRuo_Z6H @ 2024-08-05 16:43:35

@Hxxxxxxxxxx 哥们你头文件前没有#,for里面的s+a[i]=s也不符合规范,再说了这题数据范围很大,long long最多也只能存下-9223372036854775808——9223372036854775807,这里要用高精度乘法和加法才可以正确计算。
建议先做P1601和P1303练习高精度。


|