#include"stdio.h"
#include"stdlib.h"
void main()
{
int data[10000]; // 储存的16进制
int dig = 0; // 阶乘结果位数
int N; // 要求的阶乘数
int i, j; // 循环变量
printf("请输入你要求的阶乘数:");
scanf("%d",&N); //输入要求的阶乘数
for(i = 1 ;i < 1000; i++)
data[i] = 0; // 初始化数组
data[0]=1; // 初始化阶乘结果位数
for(i = 1 ; i <= N; i++)
{
printf("/n%d!=",i);
for( j = 0 ; j <= dig ; j++)
{//求阶乘
data[j] = data[j] * i;
}
for( j = 0 ; j <= dig; j++)
{ //判断是否进位
if(data[j] > 9)
{
data[j+1] = data[j+1] +data[j]/10;
data[j] = data[j] %10;
if( j+1 > dig)
{
dig++;
}
}
}
// 输出
for( j = dig ; j >= 0; j--)
printf("%d",data[j]);
}
printf("/n");
}