求较大数阶乘
对于求较大数阶乘,其结果已超出整形科表示的范围,所以不能用基本整形变量去表示,但我们可以借助数组,把其结果的每一位存储在一个数组单元中,就可以表示。
#include<stdio.h>
{
int i,j,jw,len=0,temp,n;
static a[10000000];
scanf("%d",&n);
a[1]=1;
for(i=2;i<=n;i++)
{
jw=0;
for(j=1;j<=len;j++)
{
temp=a[j]*i+jw;
a[j]=temp%10;
jw=temp/10;
if(j>=len && jw!=0)
len++;
}
}
for(i=len;i>=1;i--)
printf("%d",a[i]);
printf("\n");
}
如有错误请指正。
谢谢!