super_LD @ 2022-11-21 14:31:02
#include<bits/stdc++.h>
using namespace std;
int main()
{
int i,j,n,a[105]={0},b[105]={0};
cin>>n;
a[0]=1,b[0]=1;
for(i=2;i<=n;i++)
{
for(j=0;j<100;j++)
{
a[j]*=i;
}
for(j=0;j<100;j++)
{
if(a[j]>9)
{
a[j+1]+=a[j]/10;
a[j]%=10;
}
}
for(i=0;i<100;i++)
{
b[i]+=a[i];
if(b[i]>9)
{
b[i+1]+=b[i]/10;
b[i]%=10;
}
}
}
for (i=100;i>=0&&b[i]==0;i--);
for(j=i;j>=0;j--)
{
cout<<b[j];
}
}
by 编码落寞 @ 2022-11-21 15:12:07
@super_LD
for(i=0;i<100;i++)
{
b[i]+=a[i];
这个循环里面的i破坏大循环中i的值 可以增加int标识,使其成为临时变量
by _LX_ @ 2022-11-21 15:19:13
@super_LD 变量名重复了
for(i=2;i<=n;i++)
{
for(j=0;j<100;j++)
{
a[j]*=i;
}
for(j=0;j<100;j++)
{
if(a[j]>9)
{
a[j+1]+=a[j]/10;
a[j]%=10;
}
}
for(i=0;i<100;i++)//i重复使用
{
b[i]+=a[i];
if(b[i]>9)
{
b[i+1]+=b[i]/10;
b[i]%=10;
}
}
}
by super_LD @ 2022-11-21 15:27:35
@编码落寞 感谢大佬
by super_LD @ 2022-11-21 15:27:56
@LX 感谢大佬