LRX1029 @ 2024-03-31 21:29:17
#include<stdio.h>
#include<iostream>
using namespace std;
long long n,a[90][90],b[90],sum[90],m,s;
int main(){
scanf("%lld",&n);
a[1][0]=1,a[1][1]=1;
for(int i=2;i<=n;i++){
b[1]=i%10;
if(i>=10){
b[0]=2;
b[2]=i/10;
}else{
b[0]=1;
}
for(int j=1;j<=b[0];j++){
s=0;
for(int k=1;k<=a[i-1][0];k++){
m=a[i-1][k]*b[j]+s;
if(m>9){
s=m/10;
m%=10;
}else{
s=0;
}
a[i][k+j-1]=m;
a[i][0]++;
}
if(s){
a[i][0]++;
a[i][a[i][0]]=s;
}
}
}
for(int i=1;i<=n;i++){
s=0;
for(int j=1;j<=a[i][0];j++){
m=a[i][j]+sum[j]+s;
if(m>9){
m-=10;
s=1;
}else{
s=0;
}
if(sum[j]==0){
sum[0]++;
}
sum[j]=m;
}
if(s){
sum[0]++;
sum[sum[0]]=1;
}
}
s=0;
for(int i=sum[0];i>=1;i--){
if(s){
printf("%lld",sum[i]);
}else if(sum[i]!=0){
printf("%lld",sum[i]);
s=1;
}
}
return 0;
}