该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

/*

程序功能:计算一个正整数n的阶乘,目前最大能运算10000的阶乘,可秒杀。

程序意义:加强自己对于大数的处理。

说明:此程序对乘法和除法还未做任何优化,如果用上位运算的知识应该可以继续优化。 */ #include #define N 10000//宏定义数组长度 int main()

{

int nResult[N] = {0};//必须用一个足够大的数组来存储计算结果来确保计算结果不会溢出

int nDigit = 1; //位数

int nTemp = 0;//阶乘的任一元素与临时结果的某位的乘积结果

int i = 0;

int j = 0;

int nCarry = 0;//进位

int nNum = 0;

printf("Please input n:");

scanf("%d", &nNum);

nResult[0] = 1;//先将结果初始化为1

for (i = 2; i <= nNum; i++)//开始阶乘,阶乘元素从2开始一次“登场”

{

//按最基本的乘法运算思想来考虑,将临时结果的每位与阶乘元素相乘

for (j = 1, nCarry = 0; j <= nDigit; j++)

{

nTemp = nResult[j - 1]*i + nCarry;//相应阶乘中的一项与当前所得临时结果的某位相乘且加上进位

nResult[j - 1] = nTemp % 100000;//更新临时结果的位上信息

nCarry = nTemp / 100000;//看是否有进位

}

while (nCarry)//判断当前临时结果的最高位是否有进位

{

nResult[nDigit++] = nCarry % 100000;//新增一位

nCarry /= 100000;//看是否还能继续进位

}

}

for (i = nDigit; i >= 1; i--)//显示结果

{

printf("%d", nResult[i - 1]); if (0 == nResult[i - 1])

{

printf("0000");//因为每个数组元素存储5位数字,每次输出项为0时需补上缺少的4个零

}

}

printf("\r\n");

return 0;

}

c语言求阶层的某位数,求10000的阶乘(c语言代码实现)相关推荐

  1. c语言程序 输入一个四位数,用c语言编程:输入一个四位数,求出它的个位、十位、百位、千位...

    满意答案 QQ89748770 推荐于 2018.02.26 采纳率:45%    等级:13 已帮助:7318人 C代码:--------------------- int a; scanf(&qu ...

  2. C语言:输入一个整数 求它是几位数

    精彩分享: ​​​​​​​C++从入门到精通(十万字详细内容总结)细节满满_九九丸io的博客-CSDN博客 (数据结构与算法)一文让你学会基本排序算法(图文详解) 题目:输入一个整数求它是几位数   ...

  3. c语言4位数求各位数的立方和,功能:使用循环结构求一个四位数的各位数字的立方和...

    vb 使用循环结构,打印下列图案 有了,可能不是最好的算法,希望对你有帮助!DIMm,nASINTEGERDIMaASSTRINGDIMbASSTRINGform=1to4a="" ...

  4. C语言:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字

    题目:给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字 程序分析:注意此题要求,所求的是正整数,并且后面要实现逆序 方法一:最基本的思路就是我把输入的这个整数分解,假如输入一个 ...

  5. c语言 怎么对百位数求余量,数据结构(C语言版)

    <数据结构(C语言版)>由会员分享,可在线阅读,更多相关<数据结构(C语言版)(52页珍藏版)>请在装配图网上搜索. 1.数据结构(C语言版)第7章图,第7章图,内容 7.1 ...

  6. C语言编程>第三周 ④ 求100之内的素数。

    例题:求100之内的素数. 代码如下: #include <stdio.h> #include "math.h" #define N 101 main() {int i ...

  7. Algorithm:C++/python语言实现之求旋转数组最小值、求零子数组、求最长公共子序列和最长公共子串、求LCS与字符串编辑距离

    Algorithm:C++/python语言实现之求旋转数组最小值.求零子数组.求最长公共子序列和最长公共子串.求LCS与字符串编辑距离 目录 一.求旋转数组最小值 1.分析问题 2.解决思路 二.求 ...

  8. 用c语言实现单链表的初始化,建表,查找,求长度,插入,删除等操作,【YTU+2430+C语言习题+链表建立+插入+删除+输(5)...

    的打印.判断链表是否为空.计算链表长度.插入节点.删除节点.删除整个链表.(2) 线性表adt顺序存储实现中的创建.查找.插入和删除等基本操作及相关算法,线性表adt链式存储实现中单链表.循环链表和双 ...

  9. Java黑皮书课后题第2章:2.6(求一个整数各位数的和)读取一个0和1000之间的整数,并将给整数的各位数字相加

    2.6(求一个整数各位数的和)读取一个0和1000之间的整数,并将给整数的各位数字相加 题目 题目描述 运行示例 题目槽点与破题 题目槽点 破题 如何提取数字 代码块 方法评价 题目 题目描述 2.6 ...

最新文章

  1. 【长篇连载】桌面管理演义 第八回 电脑中毒很危险 告警隔离防传染
  2. ToolBarManager可任意选择你想要的菜单
  3. python3字典有序还是无序_无序字典和有序字典
  4. 编程之美-寻找最近点方法整理
  5. java从端口获取数据库_Java之通过接口获取数据并用JDBC存储到数据库中
  6. python实现模糊搜索_Python 代码实现模糊查询
  7. Gnome Tweak Tool 3.0.5发布
  8. python数据可视化基础
  9. 占位符是如何防止sql注入的?
  10. 中国高校那些不为人知的秘密,你听说过吗?
  11. 【单片机基础篇】51单片机流水灯
  12. 网易BUFF产品体验报告
  13. 哈佛幸福课个人使用精华
  14. 【测试】11月11日的测试
  15. android渠道占有率,硬核联盟分发量在安卓渠道占比高达64%,2019年将发力四大方向...
  16. ESP32S3系列--代码执行速度优化(从PSRAM执行代码)
  17. 什么软件可以编辑PDF文件?编辑工具分享
  18. c++输入10个数/输入n个数,求其平均值
  19. C语言两种方法求圆的面积与周长编程
  20. mysql自定义函数实现

热门文章

  1. 模板上 php dede,DEDE模板中使用php和if判断语句实例
  2. 华侨大学计算机应用技术章亮,华侨大学学生综合素质测评成绩汇总表
  3. php做上位机,开发过usb上位机驱动的大虾请看一下(附图)
  4. java重定向post_java实现响应重定向发送post请求操作示例
  5. python 会计凭证_实际工作中,大多数单位都使用单式记账凭证。()
  6. 玩转springboot2.x之自定义项目内自动配置
  7. Spring DI(依赖注入)注解篇
  8. 基于JAVA+SpringMVC+MYSQL的排班管理系统
  9. 基于JAVA+SpringBoot+Mybatis+MYSQL的企业考勤管理系统
  10. android java 调用栈_Android开发中打印方法调用栈