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

求大数的阶乘。比如1000的阶乘。C语言里没有能够存这么大的数据

发布时间:2020-12-14 03:31:17 所属栏目:大数据 来源:网络整理
导读:我的想法是用两个循环, 外层循环从1到n。内层循环求每个数与前面的数的乘积。 #includestdio.h int main() { static int a[100000]; //设置一个超大数组来存储乘积结果。 int n;//要求的n的阶乘 int jw;//用来表示进位 int i,j;//控制循环 int len=1;//初始

我的想法是用两个循环,

外层循环从1到n。内层循环求每个数与前面的数的乘积。

#include<stdio.h>
int main()
{
static int a[100000]; //设置一个超大数组来存储乘积结果。
int n;//要求的n的阶乘
int jw;//用来表示进位
int i,j;//控制循环
int len=1;//初始化数组长度为1
int temp;//过程变量
scanf("%d",&n);
a[1]=1;
for(i=2;i<=n;i++)//遍历。从1到n
{
jw=0;
for(j=1;j<=len;j++)//从数组的低位开始乘
{
temp=a[j]*i+jw;//变量存储结果
a[j]=temp%10;//将变量最后一位放入数组。
jw=temp/10;//表示除了最后一位需要进位的数
if(j>=len && jw!=0)
len++; //数组长度加一
}

}
for(i=len;i>=1;i--)//逆序输出数组就是结果
printf("%d",a[i]);
printf("n");
return 0;
}


这是运行测试的结果,完全正确。

(初次写,希望多多支持)

(编辑:李大同)

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

    推荐文章
      热点阅读