问题描述: N!=1*2*3*4*5*........*N
代码如下:
#include "stdio.h"
#define MAX 1000
int main()
{
int n;
scanf("%d",&n);
int i,j;
int a[MAX]; //估算存数运算结果的位数
int p,h; //p存储当前结果的位数,h为进位
a[1]=1;
p=1;
for(i=2;i<=n;i++) //循环与2,3,4.....n相乘
{
for(j=1,h=0;j<=p;j++) //让a[]的每位与i相乘
{
a[j]=a[j]*i+h;
h=a[j]/10;
a[j]=a[j]%10;
}
while(h>0) //进位
{
a[j]=h%10;
h=h/10;
j++;
}
p=j-1; //将当前的位数赋给p
}
for(i=p;i>=2;i--){ //输出结果
printf("%d",a[i]);
}
return 0;
}
运行结果: