#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<stdlib.h>
int main()
{
int digit,temp ,n,i,j;
int a[20001];
a[0]=1;
digit=1;
scanf("%d",&n);
for (i = 2; i < n; ++i)
{
int num =0;
for ( j = 0; j < digit; ++j)
{
temp =a[j]*i+num;
a[j]=temp%10;
num=temp/10;
}
while(num)
{
a[digit]=num%10;
num=num/10;
digit++;
}
}
for (i=digit-1;i>=0; i--)
{
printf("%d",a[i]);
}
system("pause");
return 0;
}
/*
1*2*3*4*5*6*7*8*9
char a[1000000];
*/
int num_len = 1;
int a[1000000];
a[1] = 1;
int tmp = 0;
int len = 9 + 1;//阶乘的长度9+1
for (int i = 2; i < len + 1; ++i)//要求几次乘法
{
for (int j = 0; j <= num_len; ++j)//a有多少位就循环几次
{
tmp = i * a[num_len];//求i*a[]的结果
if (tmp > 10)//如果tmp/
{
a[num_len] = tmp / 10;
if (a[num_len] > 10)
{
a[num_len + 1] = a[num_len] / 10;
}
}
tmp
}
if (a[num_len] > 10)
{
}
/*
a[0]=1
i=2 2*1=2 a[0]=2;
i=3 3*2=6 a[0]=6;
i=4 4*6=24 a[0]=4;a[1]=2;
i=5 5*24=120 a[0]=0;a[1]=2;a[2]=1;
i=6 6*120=720 a[0]=0;a[1]=2;a[2]=7;
i=7 7*720=5040 a[0]=0;a[1]=4;a[2]=0;a[3]=0;
i=8 a[0]=2;
i=9 a[0]=2;
i=10 a[0]=2;
i=11 a[0]=2;
tmp/1>=1 tmp/1<10 个位
tmp/10>=1 tmp/10<10 十位
tmp/100>=1 tmp/100<10 百位
tmp/1000>=1 tmp/1000<10 千位
tmp/10000>=1 tmp/10000<10 万位
tmp/100000>=1 tmp/100000<10 十万位
*/
for (int j = 0; j < 10; ++j)
{
}
}