为什么只有50分

P1009 [NOIP1998 普及组] 阶乘之和

tu_huang_di @ 2023-04-05 17:27:22

#include<iostream>
using namespace std;
int main()
{
    long long int s,n,i,j,t;
    cin>>n;
    for(i=1;i<=n;i++)
    { 
        t=1;
        for(j=1;j<=i;j++)
        t*=j;
        s+=t;
    }
    cout<<s;
}

后两点WA


by gnim @ 2023-04-05 17:41:16

@sunyuchen1 n<=50!!!!用long long int会爆掉的,需要用高精度


by tu_huang_di @ 2023-04-05 17:43:36

@gnim ?


by Mr_Biantainne @ 2023-04-05 17:53:29

@sunyuchen1 这个数据量long long也装不下


by gnim @ 2023-04-05 17:54:29

@sunyuchen1

说明/提示
【数据范围】

对于 100%的数据1≤n≤50。

【其他说明】

注,《深入浅出基础篇》中使用本题作为例题,但是其数据范围只有n≤20,使用书中的代码无法通过本题。

如果希望通过本题,请继续学习第八章高精度的知识。

by Mr_Biantainne @ 2023-04-05 17:56:29

建议做完 P1601,P1303,知道高精度加法和乘法怎么写了再来做此题。


|