zqh_7plus @ 2024-08-28 22:44:34
rt,以下是我的代码,本人之前没学过高精,恳请指点
#include<bits/stdc++.h>
using namespace std;
const int pp=5e6+7;
int s[pp],x[pp],ans[pp],c[pp],n;
int main( ){
cin>>n;
ans[1]=1;
int xlen=1;
x[1]=1;
for(int i=2;i<=n;i++){
int xx=i,cnt=0;
while(xx){
s[++cnt]=xx%10;
xx/=10;
}
int slen=cnt;
for(int l=1;l<=xlen;l++){
for(int r=1;r<=slen;r++){
c[l+r-1]=x[l]*s[r];
c[l+r]+=c[l+r-1]/10;
c[l+r-1]%=10;
}
}
int k;
for(k=10000;k>=1&&c[k]==0;k--);
int clen=k;
for(k=10000;k>=1&&ans[k]==0;k--);
int anslen=k;
//printf("q%d %dq",anslen,clen);
for(int i=1;i<=max(anslen,clen);i++){
ans[i]=ans[i]+c[i];
ans[i+1]+=ans[i]/10;
ans[i]%=10;
}
for(int i=1;i<=clen;i++){
x[i]=c[i];
}
xlen=clen;
memset(c,0,sizeof(c));
/*
cout<<endl;
for(k=100;k>=1&&ans[k]==0;k--);
for(k;k>=1;k--){
cout<<ans[k];
}
*/
}
int k;
for(k=10000;k>=1&&ans[k]==0;k--);
for(k;k>=1;k--){
cout<<ans[k];
}
}
by hanxiaofensheng @ 2024-08-28 23:17:17
本蒟蒻献上50分小代码
#include<bits/stdc++.h>
using namespace std;
int n, ans=0;
int js(int n){
int sum=1;
for(int i=1;i<=n;i++) sum*=i;
return sum;
}
int main(){
cin>> n;
for(int i=1;i<=n;i++) ans+=js(i);
cout<<ans;
}
我可没用 高精度,求关注
by hanxiaofensheng @ 2024-08-29 14:11:48
@zqh_7plus
#include<bits/stdc++.h>
using namespace std;
int n, ans=0;
int js(int n){
int sum=1;
for(int i=1;i<=n;i++) sum*=i;
return sum;
}
int main(){
cin>> n;
for(int i=1;i<=n;i++) ans+=js(i);
cout<<ans;
}
我可没用高精度,求关注
by zqh_7plus @ 2024-08-29 16:17:03
@xiaokeai1234 已关,壶关