加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数阶乘

发布时间:2020-12-14 03:34:06 所属栏目:大数据 来源:网络整理
导读:大数阶乘 返回:n!的位数 结果:a[10000]记录n!的数据 #includestdio.h#includemath.hint factorial(int n);int main(){int re;re=factorial(1000); //测试用的printf("n%dn",re);return 0;}int factorial(int n){long a[10000];//int类型也可以int i,j,l,
大数阶乘
返回:n!的位数

结果:a[10000]记录n!的数据

#include<stdio.h>
#include<math.h>
int factorial(int n);
int main()
{
int re;
re=factorial(1000); //测试用的
printf("n%dn",re);
return 0;
}
int factorial(int n)
{
long a[10000];//int类型也可以
int i,j,l,c,w,m=0;
a[0]=1;
for(i=1;i<=n;i++)//i小于等于n,注意边界问题
{
c=0;
for(j=0;j<=m;j++)
{
a[j]=a[j]*i+c;
c=a[j]/10000;//取4位以上的数据
a[j]%=10000;
}
if(c>0)
{
m++;
a[m]=c;
}
}
w=m*4+log10(a[m])+1;//math里面的函数
printf("n%ld",a[m]);
for(i=m-1;i>=0;i--)
printf("%4.4ld",a[i]);//如果a[i]不够4位 在前面自动补零
return w;
}
by ?吴尚奇 ? Devil_box ? 2014/06

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读