所求数越大,内存开销越大……即N的值越大……N的值设为1000,可求得400多的阶乘……
#include<stdio.h>
#include<math.h>
#include<conio.h>
#define N 800/* 只要N设得足够大,可求到的阶乘数越大,设到1000,可以求到400多的阶乘*/
void main()
{
short i,j,k,r,x,flag,a[N];
for(i=0;i<N;i++)
a[i]=0;
x=flag=0;
i=j=k=1;
a[0]=a[1]=1;
printf("\n请输入要计算阶乘的数:");
scanf("%d",&x);
for(i=1;i<=x;i++)
{
int temp;
temp=0;
for(j=1;j<=k;j++)
{
if(flag!=1)
a[j]*=i;
else
{
a[j]=a[j]*i+temp;