第七章 高精度计算.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章 高精度计算

第七章 高精度计算 7.1 例题:大整数加法 7.2 例题:大整数乘法 7.3 例题:大整数除法 7.4 例题:麦森数 实验题 大整数加法 问题描述 求两个不超过200 位的非负整数的和。 输入数据 有两行,每行是一个不超过200 位的非负整数,没有多余的前导0。 输出要求 一行,即相加后的结果。结果里不能有多余的前导 0,即如果结果是342,那么就不能输出为 0342 大整数加法 解题思路 1) 用字符型或整型数组来存放大整数 an[0]存放个位数,an[1]存放十位数,an[2]存放百位数…… 2)模拟小学生列竖式做加法,从个位开始逐位相加,超过或达到10则进位。 用unsigned an1[201]保存第一个数,用unsigned an2[200]表示第二个数,然后逐位相加,相加的结果直接存放在an1中。要注意处理进位。 大整数加法 #include stdio.h #include string.h #define MAX_LEN 200 int an1[MAX_LEN+10]; int an2[MAX_LEN+10]; char szLine1[MAX_LEN+10]; char szLine2[MAX_LEN+10]; int main() { scanf(%s, szLine1); scanf(%s, szLine2); int i, j; memset( an1, 0, sizeof(an1)); memset( an2, 0, sizeof(an2)); int nLen1 = strlen( szLine1); j = 0; for( i=nLen1-1;i=0;i--) an1[j++]=szLine1[i] - 0; int nLen2 = strlen(szLine2); j = 0; for( i=nLen2-1;i=0;i--) an2[j++]= szLine2[i]-0; 大整数加法 大整数乘法 问题描述 求两个不超过200 位的非负整数的积。 输入数据 有两行,每行是一个不超过200 位的非负整数,没有多余的前导0。 输出要求 一行,即相乘后的结果。结果里不能有多余的前导 0,即如果结果是342,那么就不能输出为 0342。 大整数乘法 大整数乘法 #include stdio.h #include string.h #define MAX_LEN 200 unsigned an1[MAX_LEN+10]; unsigned an2[MAX_LEN+10]; unsigned aResult[MAX_LEN * 2 + 10]; char szLine1[MAX_LEN+10]; char szLine2[MAX_LEN+10]; int main() { gets( szLine1); gets( szLine2); int i, j; int nLen1 = strlen( szLine1); memset( an1, 0, sizeof(an1)); memset( an2, 0, sizeof(an2)); memset( aResult, 0, sizeof(aResult)); 大整数乘法 大整数乘法 大整数除法 问题描述 求两个大的正整数相除的商 输入数据 第 1 行是测试数据的组数n,每组测试数据占2 行,第1行是被除数,第2 行是除数。 每组测试数据之间有一个空行,每行数据不超过 100 个字符 输出要求 n 行,每组测试数据有一行输出是相应的整数商 大整数除法(整除) 大整数除法 大整数除法 大整数除法 大整数除法 麦 森 数 问题描述 形如2p-1的素数称为麦森数,这时P 一定也是素数。但反过来不一定,即如果 P 是素数。2p-1不一定是素数。 到1998 年底,人们已找到了 37个麦森数。最大的一个是P=3021377,它有909526 位。麦森数有许多重要应用,与完全数密切相关。 要求输入P (1000P3100000) , 计算2p-1 的位数和最后500位数字(用十进制高精度数表示) 输入数据 一个整数P(1000P3100000) 输出要求 第1 行:十进制高精度数2P-1的位数。 第 2-11 行:十进制高精度数 2P-1的最后500位数字。(每行输出 50 位,共输出 10 行,不足500 位时高位补0) 不必验证2p-1与P是否为素数。 解题思路 第一个问题,输出2p-1(和2p相同)有多少位 do

文档评论(0)

zw4044 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档