https://blog.csdn.net/huxiansheng__/article/details/80052081
#include<iostream>
#include<cstdio>
#include<cstring>
int s[100000]={0};//数组用来储存结果。
using namespace std;
int main()
{
int n,sum=1,i,j,temp=0,h=0,l;
s[0]=1;//初始化为1。
l=1;
scanf("%d",&n);
for(i=2;i<=n;i++)//1就不用在运行了。
{
for(j=1;j<=l;j++)//这里,你想不通就无法理解这个代码。
{ 1 5 ——————>i
temp=s[j-1]*i+h; 1 2 1 ——————>s中储存的数据。
s[j-1]=temp%10; -----------
h=temp/10; 1 5
} 3 0
while(h) 1 5
{ ---------------//想不通的看这个图,自己理解一下,因为不知该怎么讲。
l++; 1 8 1 5
s[l-1]=h%10;
h/=10;
}
}
for(i=l-1;i>=0;i--)
{
printf("%d",s[i]);
}
cout<<endl;
}