求助
查看原帖
求助
1401899
aikepudelizhi楼主2024/8/22 19:43
#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;
}
2024/8/22 19:43
加载中...