zhanghengrui479937 @ 2023-12-20 08:53:43
#include<cstdio>
int f_ans=0;
int factorial(int n){
f_ans=n;
for(int i=n-1;i!=0;i--) f_ans*=i;
return f_ans;
}
int main(){
int n;
scanf("%d",&n);
int ans=0;
for(int i=1;i<=n;i++) ans+=factorial(i);
printf("%d\n",ans);
return 0;
}
后两个测试点没过
by mengmeng123456 @ 2023-12-20 09:45:35
这道题要用到高精度算法
by mengmeng123456 @ 2023-12-20 09:49:55
数据范围是n<=50,50!的结果远远超出了C++unsigned long long的范围,所以要使用高精度
by TomXIACH @ 2023-12-20 12:53:12
学python
by zhm666wan @ 2024-01-06 13:39:51
@zhanghengrui479937 超范围了,要用高精度乘法+高精度加法,要开数组,主要就是处理进位