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

/*

程序功能:计算一个正整数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. 50的阶乘用c语言编写,求10000的阶乘(c语言代码实现)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* 程序功能:计算一个正整数n的阶乘,目前最大能运算10000的阶乘,可秒杀. 程序意义:加强自己对于大数的处理. 说明:此程序对乘法和除法还未做任何优 ...

  2. 50阶乘c语言思想,求10000的阶乘(c语言代码实现)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* 程序功能:计算一个正整数n的阶乘,目前最大能运算10000的阶乘,可秒杀. 程序意义:加强自己对于大数的处理. 说明:此程序对乘法和除法还未做任何优 ...

  3. c语言程序设计阶乘输出,C语言编写10的阶乘,用C语言编程求10的阶乘

    导航:网站首页 > C语言编写10的阶乘,用C语言编程求10的阶乘 C语言编写10的阶乘,用C语言编程求10的阶乘 匿名网友: 思路:先定义一个函数求一个数的阶乘,接着依次从1到10调用该函数就 ...

  4. 【算法设计与分析】—— n的阶乘问题(eg:求100的阶乘 结果中的所有位数都精确输出)

    n的阶乘问题(eg:求100的阶乘 结果中的所有位数都精确输出) 算法题目 算法分析 代码实现 结果示例 算法题目 其实这个求n的阶乘问题,我们在刚刚学习c语言的时候,应该就有大致的了解过了,那个时候 ...

  5. C语言实现求n的阶乘(n!),阶乘的和。

    目录 一.求n!阶乘 1.1思路 1.2代码实现 1.3运行结果 二.求阶乘的和(1!+2!+3!+4!+.....+n!) 2.1思路 2.2代码实现和运行结果 2.2.1方法一 2.2.2方法二 ...

  6. 三种方法求最大公约数(C语言版)

    问题描述:用三种方法求两个的整数的最大公约数. 算法分析: 1.相减法:输入两整数a和b,(1)如果a>b,a=a-b;(2)如果a<b,b=b-a;(3)如果a=b,a或b就为这两个整数 ...

  7. C语言 递归求n的阶乘和

    思路:定义一个fun函数来求n的阶乘,主函数中用for循环来对阶乘求和.fun函数使用递归,每次调用自己,求出阶乘. #include<stdio.h> int fun(int n) {i ...

  8. 【C语言】求5的阶乘(求n的阶乘)

    #include<stdio.h> int main() { int i=2,t=1; while(i<=5) { t=t*i; i++; } printf("%d\n&q ...

  9. 阶乘在c语言代码大全,求10000的阶乘(c语言代码实现)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* 程序功能:计算一个正整数n的阶乘,目前最大能运算10000的阶乘,可秒杀. 程序意义:加强自己对于大数的处理. 说明:此程序对乘法和除法还未做任何优 ...

最新文章

  1. 复习心得 JAVA异常处理
  2. vue操作dom_vue源码全面解析(四十六)源码中操作DOM的方法集合
  3. CRM Excel导出技术实现的调试截图
  4. python写一个表白程序_520最实用的Python表白程序
  5. Code Names
  6. [react] react中setState的第二个参数作用是什么呢?
  7. redis的安装(Linux)和基本使用
  8. swoole服务器主动推消息,实现websocket-主动消息推送laravelswoole
  9. Java内部类 Inner Class
  10. C# 关于yield return的研究(转载)
  11. 剑指offer——复习1:二叉树三种遍历方式的迭代与递归实现
  12. 单端口和双端口的优势_哪种适合您,三种常见组网方式比较
  13. displayTag
  14. LTP上手之路(一)
  15. 1602液晶显示屏工作原理引脚电路图51单片机
  16. python拟合统计分布_利用 Python Fitter 判断数据样本符合那种分布函数
  17. Team Foundation Power Tools 1.2发布
  18. JavaScript断言
  19. Golang 插件开发入门教程
  20. 用Proxmox搞定gpu穿透

热门文章

  1. 用vector实现一个变长数组
  2. cocos2dx3.0-tinyxml在Android环境下解析xml失败的问题
  3. 海量路由表能够使用HASH表存储吗-HASH查找和TRIE树查找
  4. 实时个性化推荐系统简述
  5. ecos代码分析(2)
  6. CLR via C# 读书笔记 1-2 创建线程的成本
  7. Memcached安装和基本使用
  8. 136.二层交换机是哪一层的设备,与三层交换机之间的区别?
  9. 浙江金华暂时停用“智能头箍”,专家:监测学生脑电违反伦理
  10. 全球首个自适应机械臂:精准抗干扰,斯坦福华人团队打造