您的位置:首页 > 其它

大数阶乘(还有不明白的地方——输出部分、计算位数公式)

2009-10-15 23:27 323 查看
#include "stdio.h"
#include "math.h"
int factorial(int n)
{
long a[10000];
a[0]=1;
int i,j,c,m=0,w;
for (i=1;i<=n;i++)
{
c=0;
for (j=0;j<=m;j++)
{
a[j]=a[j]*i+c;
c=a[j]/10000;
a[j]=a[j]%10000;
}
if (c>0)
{
m++;
a[m]=c;
}
}
w=m*4+log10(a[m])+1;
printf("/n%ld",a[m]);
for(i=m-1;i>=0;i--)
printf("%4.4ld",a[i]);
/*for(i=m;i>=0;i--)
printf("%4.4ld",a[i]);*/
printf("/n");
return w;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d/n",factorial(n));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐