moqwq @ 2023-03-13 20:45:35
#include <bits/stdc++.h>
using namespace std;
int a[10000001],b[100000005];
int main()
{
int n,x=0,s=1;
cin>>n;
a[1]=1;
for(int d=0;d<n;d++)
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=s;j++)
{
a[j]=a[j]*i+x;
x=a[j]/10;
a[j]%=10;
if(x>0&&j==s)
{
s++;
}
}
}
for(int i=1;i<=s+1;i++)
{
b[i]+=a[i];
if(b[i]>=10)
{
b[i]%=10;
b[i+1]++;
}
}
}
if(a[s]==0)
{
s--;
}
for(int i=s;i>=1;i--)
{
cout<<a[i];
}
return 0;
}
by xxc123 @ 2023-04-10 22:18:47
代码写好看点!!! 分函数,这样容易找错。 求关注
#include<iostream>
using namespace std;
int a[1001],b[1001];
void add()
{
int t=0;
for(int i=1000;i>=1;i--)
{
b[i]=b[i]+a[i]+t;
t=b[i]/10;
b[i]%=10;
}
}
void multiplication(int x)
{
int t=0;
for(int i=1000;i>=1;i--)
{
a[i]=a[i]*x+t;
t=a[i]/10;
a[i]%=10;
}
}
void print()
{
int flag=0;
for(int i=1;i<=1000;i++)
{
if(b[i]!=0) flag=1;
if(flag) cout<<b[i];
}
}
int main()
{
a[1000]=b[1000]=1;
int n;
cin>>n;
for(int i=2;i<=n;i++)
{
multiplication(i);
add();
}
print();
return 0;
}