wangzaixi @ 2024-08-22 19:43:27
#include<iostream>
using namespace std;
long long ans1[100000],ans2[100000],ans3[100000000000];
int n;
void jc(){
int k=1,jw=0,temp;
ans1[1]=1;
for(int i=1;i<=n;i++){
jw=0;
for(int j=1;j<=k;j++){
temp=ans1[j]*i+j;
jw=temp/10;
ans1[j]=temp%10;
}
while(jw!=0){
k++;
ans1[k]=jw%10;
jw/=10;
}
}
ans1[0]=k;
k=1;
ans2[1]=1;
for(int i=1;i<=n;i++){
jw=0;
for(int j=1;j<=k;j++){
temp=ans2[j]*i+jw;
jw=temp/10;
ans2[j]=temp%10;
}
while(jw!=0){
k++;
ans2[k]=jw%10;
jw/=10;
}
}
ans2[0]=k;
}
void Plus(){
ans3[0]=max(ans1[0],ans2[0]);
int jw=0,k;
for(int i=1;i<=ans3[0];i++){
k=ans1[i]+ans2[i]+jw;
ans3[i]=k%10;
jw=k/10;
}
if(jw!=0){
ans3[0]++;
ans3[ans3[0]]=jw;
}
}
int main(){
cin>>n;
jc();
Plus();
for(int i=ans3[0];i>=1;i--){
cout<<ans3[i];
}
return 0;
}
by _ayaka_ @ 2024-08-22 19:53:26
你谁呀你?
by MacArthur_sir @ 2024-08-22 19:54:44
@wangzaixi
#include<iostream>
#include<cstdio>
using namespace std;
int n,a[101]={0},s[101]={0};
void change(int x){//求积
int g=0;
for(int i=100;i>=0;i--){
a[i]=a[i]*x+g;
g=a[i]/10;
a[i]=a[i]%10;
}
}
void qh(){//求和
int g=0;
for(int i=100;i>=0;i--){
s[i]=s[i]+a[i]+g;
g=s[i]/10;
s[i]=s[i]%10;
}
}
void sc(){
int w;
for(int i=0;i<=100;i++){
if(s[i]!=0){
w=i;
break;
}
}
for(int i=w;i<=100;i++)
cout<<s[i];
}
int main(){
cin>>n;
s[100]=a[100]=1;
for(int i=2;i<=n;i++){
change(i);
qh();
}
sc();
return 0;
}
求关