求大数阶乘
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
int data[100000];
void main()
{
int m,n,i,j,len,t,temp;
printf("请输入一个数组元素存多少位:");
scanf("%d",&m);
t = (int)pow(10.0,m*1.0);
printf("请输入n:");
scanf("%d",&n);
len = 1;
memset(data,0,100000);
data[1]=1;
for(i=1;i<=n;i++)
{
temp = 0;
for(j=1;j<=len && i<=n;)
{
data[j]*=i;
data[j]+=temp;
if(data[j]>t)
{
temp = data[j]/t;
data[j]%=t;
j++;
}
else
{
temp =0;
i++;
}
}
if(temp) {len++;data[len]=temp;}
}
for(i=len;i>=1;i--)
printf("%d",data[i]);
printf("\n");
}
大数阶乘
最新推荐文章于 2022-07-13 11:43:03 发布