可容纳40位数的求n!的程序
数据结构为数组,运用数组来弥补整数数据类型有限的使用范围。
n! = n* (n-1)!
"factorial.c"
#include <stdio.h>
#include <stdlib.h>
int main()
{
int N=1; //the number u input
int Data[40]; // the result
printf("plz input the number:");
scanf("%d",&N);
int i,j,r,k;
int Digit=1;
for(i=1;i<41;i++)
{
Data[i] = 0;
}
Data[0] = Data[1] = 1;//init array, needed
for(i=1;i<=N; i++)
{
for(j=1;j<Digit+1;j++)
Data[j] *= i; //calculate in array
for(j=1;j<Digit+1;j++)
{
if(Data[j]>10)
{
for(r=1;r<Digit+1;r++)
{
if(Data[Digit]>10)
Digit++;
Data[r+1] += Data[r]/10;
Data[r] = Data[r]%10;
}
}
}
printf("%d! = ",i);
for(k=Digit;k>0;k--)
{
printf("%d",Data[k]);
}
printf("\n");
}
}
gcc factorial.c -o factorial