zeng_yanqin @ 2024-10-31 20:01:23
MAN!MAN!啥意思,我照着洛谷深入浅出程序设计竞赛(基础篇)写的,居然还错,是书本的问题,还是我代码的问题?
#include<bits/stdc++.h>
using namespace std;
int main(){
long long cnt=0,n;
cin>>n;
for(int i=1;i<=n;i++){
long long ans=1;
for(int j=1;j<=i;j++)
ans*=j;
cnt+=ans;
}
cout<<cnt;
return 0;
}
by zjr2014 @ 2024-10-31 20:03:19
@zeng_yanqin
高精度!!!!!!!!!
by zeng_yanqin @ 2024-10-31 20:08:31
@zjr2014
我是初学者,还不懂高精度
by zjr2014 @ 2024-10-31 20:10:16
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+1;
int a[maxn]={0,1},alen=1,n,sum[maxn],sumlen=1,jw;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
jw=0;
for(int j=1;j<=alen;j++){
a[j]*=i;
a[j]+=jw;
jw=a[j]/10;
a[j]%=10;
}
while(jw>0){
a[alen+1]+=jw;
jw=a[alen+1]/10;
a[alen+1]%=10;
alen++;
}
sumlen=max(sumlen,alen);
for(int j=1;j<=sumlen;j++){
sum[j]+=a[j];
sum[j+1]+=sum[j]/10;
sum[j]%=10;
}
if(sum[sumlen+1]!=0){
sumlen++;
}
}
for(int i=sumlen;i>=1;i--){
cout<<sum[i];
}
return 0;
}
@zeng_yanqin
by zeng_yanqin @ 2024-10-31 20:12:46
@zjr2014
谢谢
by yuechenxi130407 @ 2024-10-31 20:13:15
@zjr2014
我用的Python
by xiaomazai @ 2024-11-03 12:26:05
【其他说明】
注,《深入浅出基础篇》中使用本题作为例题,但是其数据范围只有n≤20,使用书中的代码无法通过本题。
by xiaoliruizhi @ 2024-11-12 21:28:33
@zeng_yanqin 建议你看看这个