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

/*

程序功能:计算一个正整数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. 信息学奥赛一本通 1172:求10000以内n的阶乘 | OpenJudge NOI 1.6 14:求10000以内n的阶乘

    [题目链接] ybt 1172:求10000以内n的阶乘 OpenJudge NOI 1.6 14:求10000以内n的阶乘 [题目考点] 1. 高精度 考察:高精乘低精 高精度计算讲解 [解题思路] ...

  2. 诺禾-C语言实现尾递归求7的阶乘

    如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的.当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归.尾递归函数的特点是在 ...

  3. 50的阶乘用c语言编写,求10000的阶乘(c语言代码实现)

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

  4. c语言如何实现阶乘,求10000的阶乘(c语言代码实现)

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

  5. n阶乘的c语言代码,求10000的阶乘(c语言代码实现)

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

  6. 一万的阶乘c语言方法,求10000的阶乘(c语言代码实现)

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

  7. 如何用c 语言编写阶乘程序,求10000的阶乘(c语言代码实现)

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

  8. 100的阶乘c语言代码,求10000的阶乘(c语言代码实现)

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

  9. 求一个数的阶乘值c语言代码,求10000的阶乘(c语言代码实现)

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

最新文章

  1. 微软宣布Azure Migrate和Site Recovery服务增强功能
  2. raver php,为PhpStorm添加Laravel 代码智能提示功能
  3. 关卡设计快速入门_1. 创建新项目
  4. 008_Spring Data JPA原生SQL
  5. 我是一只IT小小鸟读书笔记3
  6. C++中的RAIL风格
  7. wayland与linux_将Linux与Wayland一起使用? 您需要知道的 | MOS86
  8. linux7.2 静态IP设置,Centos 7 学习之静态IP设置
  9. 使用DIV之后 table何去何从
  10. math python 向上取整_计算机等级考试二级Python语言模拟试卷单选解答详解第1期...
  11. 高效配置Linux代理服务器――Squid
  12. itext生成pdf间距_java将html转为pdf
  13. FocusLab新生大礼包三:Latex安装教程
  14. linux 备份 网络配置,如何备份已经配置好的虚拟机linux系统的网络..._网络编辑_帮考网...
  15. 荣耀9igoogle模式_创建自己的简单iGoogle小工具
  16. SCSI设备:SCSI接口图片说明
  17. Tanking个人短网址在线生成源码 个性化设置
  18. Word文档中只删除英文保留中文或删除中文保留英文
  19. 谷歌五笔输入法_输入法之争
  20. Win7系统待办下载 纯净版无广告待办软件

热门文章

  1. 快学习使用Linux吧,避免勒索病毒大肆入侵
  2. 《IP路由协议疑难解析》一1.3 动态路由
  3. Jenkins maven 编译一些问题
  4. TYVJ P1080 N皇后 Label:dfs PS:以前做的一道题,贴出来防忘
  5. 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序
  6. 无法打开物理文件 X.mdf。操作系统错误 5:5(拒绝访问。)
  7. pcre库文件的安装
  8. D3D9学习笔记(四) 绘制
  9. 微软一站式开发技术框架解决方案 年内展望
  10. php mysql用户登录_php mysql实现用户登录功能的代码示例