- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高精度计算大数阶乘的c语言源代码和解释
关键词:高精度,大数,阶乘,C, 输入的容错处理,
内容介绍:利用高精度计算n阶乘的c语言源代码及其解释,其中还包括一些在C语言中常用的简单编程习惯和技巧,非常适合C语言初学者借鉴,如果好好的把程序调试一遍会对初学者很大的启发。程序中没有用到指针,结构体,共用体等内容,但运用了预编译,头文件,数组等等知识,特别是对getchar()进行输入容错的运用,并有详细的解释!
算法简介:高精度计算n的阶乘其实是高精度大整数乘法的应用其核心思想就是把计算结果每一位上的数字保存到一个数组成员中,例如:把保存至数组中,保存结果应该是result[0] =;result[1] =;result[2] =把整个数组看成一个数字,这个数字和一个数相乘的时候,需要每一位都和这个乘数进行相乘运算还需要把前一位的进位加上如下:int 结果 = result[x] * 乘数 + 进位;每一位的计算结果有了,把这个结果的个位数拿出来放到这个数组元素上:result[x] = 结果%10;接下来的工作就是计算出进位:进位 = 结果 / 10;这样一位一位的把整个数组计算一遍,最后可能还有进位,用同样的方法,把进位的数值拆成单个数字,放到相应的数组元素中。最后从后往前输出结果。有一个int型的返回值.当程序调用时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,才开始从stdio流中每次读入一个字符.函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续调用读取.也就是说,后续的调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.
etch()与基本功能相同,差别是etch()直接从键盘获取键值,不等待用户按回车,只要用户按一个键,etch()就立刻返回,etch()返回值是用户输入的ASCII码,出错返回-1.输入的字符不会回显在屏幕上.etch()函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用etch()函数暂停程序运行,当按任意键后程序继续运行.
//本程序适合学习c语言的初学者调试学习,程序中没有用到指针,结构体,共用体等内容
//本来下面的代码是一个头文件,文件名是:headself.h 里面只有一个输入正整数的函数。
//把自己经常用的一些变量,函数等等放入自编的头文件是一个很好的习惯。
/*begin包含头文件********************/
#include stdio.h
#include stdlib.h
#include conio.h
#include math.h
/*end包含头文件**********************/
/*begin宏定义************************/
#define DEBUG 1 //当程序在调试阶段时 DEBUG为 1,发布时改成0则可
#define HEAD_M 250000 // 存储阶乘运算结果的数组长度,该参数不要超过250000
#define HEAD_N 5 //限制输入的正整数位数,该参数不要超过5,如果是5,对应的 HEAD_M 要设为250000为 且输入的求阶乘的数也不能大于50000
/*end宏定义**************************/
/*begin函数声明**********************/
int Input_uint(); //无符号整形输入函数
/*end函数声明************************/
/*begin自定义类型******************/
/*end自定义类型********************/
/*begin全局变量定义******************/
/*end全局变量定义********************/
/*begin函数定义*********************/
int Input_uint() //无符号整形输入函数
{
int count_a=0,ratio=1,count_c=0,number=0,judge=1;
//count_a计数变量;ratio转换系数,1,10,100等;
// count_c计数变量;number函数返回值;
// judge输入判断变量,-1出错;
char str[HEAD_N];
for (count_a=0;cou
您可能关注的文档
最近下载
- 0KB.412.367.2 ZF6-1100型气体绝缘金属封闭开关设备用两断口断路器安装使用说明书.pdf VIP
- 法治知识竞赛试题附答案.doc VIP
- 虎符铜砭--刮痧课件.ppt VIP
- 斯柯达技术培训:Gateway J533 EN.ppt VIP
- 2025年江苏开放大学大学英语(B)(1)形成性考核作业二.pdf VIP
- 照明设计软件:Dialux二次开发_DialuxAPI接口详解.docx VIP
- 2024届高考作文材料分类训练-------对立关系型.docx VIP
- TW-ZX系列起重专用变频器用户手册.PDF
- 聚焦离子束加工技术.pdf VIP
- 新22J10 无障碍设计 .docx VIP
文档评论(0)