设为首页 加入收藏

TOP

C语言 求一个大数的阶乘
2014-11-23 23:33:42 来源: 作者: 【 】 浏览:1
Tags:语言 一个大数
C语言 求一个大数的阶乘
[cpp]
void BigFactorial(int m)
{
static int a[50000]={0,1};//第一位不用
int i,j,carry,tmp,lenth=1;//carry表示进位

for (i=2;i<=m;i++)
{
carry=0;
for (j=1;j<=lenth;j++)
{
//乘法转化为加法和进位
tmp=a[j]*i+carry;
a[j]=tmp%10;
carry=tmp/10;

//如果有进位,则向前扩展一位
if (j==lenth&&carry!=0)
lenth++;
}
}
for(int k=lenth;k>=1;k--)
printf("%d",a[k]);
}
下面计算1000的阶乘:
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇数组循环左移P位算法 下一篇 C语言输出一个数组中,所有元素..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: