所求数越大,内存开销越大……即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;
flag=0;
}
if(a[j]>=10)
{
temp=a[j]/10;

这篇博客探讨了如何求解大整数的阶乘问题,指出随着数值增大,内存需求也会增加。文中提到了一种能计算到1000的阶乘的方法,并提及书中的例子只能计算到26的阶乘。文章还暗示了如何处理计算大数阶乘时可能遇到的错误。
最低0.47元/天 解锁文章
779

被折叠的 条评论
为什么被折叠?



