jd123 @ 2022-09-16 20:43:01
int main (){
int a,i,sum=1,S=0,cnt=0;
scanf("%d",&a);
int j=a;
for(i=a;i>=1;i--)
{
for(;j>1;j--)
{
sum*=j;
}
cnt++;
S+=sum;
sum=1;
j=a-cnt;
}
printf("%d",S);
return 0;
}
by Katz @ 2022-09-16 20:44:09
算法标签:数学 高精度
by RP_INT_MAX @ 2022-09-16 20:44:52
@jd123 注意,需要用高精度
by liangbowen @ 2022-09-16 20:45:03
数据范围很大,所以 int
甚至 long long
,因此本题需要使用高精度。高精度是一种算法,通过模拟竖式来实现。具体可以参照题解,或者使用 python。
by RP_INT_MAX @ 2022-09-16 20:45:43
你得审审题了。
注,《深入浅出基础篇》中使用本题作为例题,但是其数据范围只有 n \le 20n≤20,使用书中的代码无法通过本题。 如果希望通过本题,请继续学习第八章高精度的知识。
by jd123 @ 2022-09-16 20:46:49
@liangbowen 高精度算法在哪学
by Sator1 @ 2022-09-16 20:47:40
@jd123 题目右边有题解,有百度,或者你有教练,有书
by liangbowen @ 2022-09-16 20:48:03
by liangbowen @ 2022-09-16 20:48:30
不过先学完语言基础,再学高精度
by RP_INT_MAX @ 2022-09-16 20:51:02
@jd123 P1932 P1601 P1480 P2005 P1919(雾
by RP_INT_MAX @ 2022-09-16 20:51:32
一些练习高精的模板题。