关键词不能为空

当前您在: 主页 > 高中公式大全 >

权限英文:C语言编写方案-大数阶乘

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2020-11-09 22:00
tags:c阶乘公式

念奴娇赤壁怀古拼音-南京工业职业技术学院

2020年11月9日发(作者:林钧岫)
《C语言程序设计》课程单元案例 常州信息职业技术学院
所属单元
知识点
关键字
难易程度
单元五 构造类型程序设计
数组
数组 大数阶乘
较难
《C语言程序设计》课程单元案例
——案例7 大数阶乘
一、案例描述
求自然数的阶乘。
二、案例设计思路
由于多数自然数的阶乘使用C语言的基本类型 都无法存放,所以应使用数组来存放自然数的阶
乘。
设计思路如下:
用外部数组r 来存放阶乘的每一位数字,首先令第一位(最低位)的数值为1,依次求2!,3!,
直到n!。假设( n-1)!已经放入数组r中,然后将n与(n-1)!的每一位相乘,相乘的结果仍放在
原数组元素中 ,最后从最低位开始处理进位,若该位数值超过10,超过的部分(商)向前进位(与
前一位相加),余 数放回原来的数组元素中。
三、程序代码
程序名称:大数阶乘.cpp
#include
#define N 10000 所能求的最大数
#define M N*4 阶乘的位数,要足够大
int r[M]={0}; 存放阶乘的每一位,初始化为0
void fact(int n)
{



int i;
for(i=0;i r[i]*=n;n与各位先作乘积
for(i=M-1;i>0;i--)
{
《C语言程序设计》课程单元案例 常州信息职业技术学院



}


}
r[i-1]=r[i-1]+r[i]10;从最低位r[M-1]开始,处理进位
r[i]=r[i]%10;
void main()
{








int i,j,n;
p rintf(请输入一个正整数,用来求这个数的阶乘:
scanf(
r[M-1]=1;最低 位初始化为1
for(i=2;i<=n;i++)
fact(i);
for(i=0;i if(r[i]) break;查找n!的最高位
printf(的阶乘是:n



}
for(j=i;j printf(
printf(
四、运行结果

图1 运行结果

毕业生自我鉴定-你说话


十种说明方法-华北水利水电大学分数线


山东科技大学专业-庶竭驽钝怎么读


超搞笑文章-中国岛屿面积排名


中国四大发明-现在完成时的用法


暨南大学为什么不出名-槛


辽宁省考试院-2018年高考满分作文酒


俄罗斯美术学院-描写时间飞逝的句子



本文更新与2020-11-09 22:00,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/441531.html

C语言编写方案-大数阶乘的相关文章