10高精度计算.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文档。上传文档
查看更多
10高精度计算

高精度计算 Task: 高精度加法 高精度减法 高精度乘法 高精度乘单精度 高精度乘高精度 高精度除法 高精度除单精度 高精度除高精度 Problem 1:a+b=? 输入:a b 输出:a+b的和 输入输出样例: Input: 1 2 Input:1234567890 8765432109 Output:3 Output:9999999999 PS: int32: -2147483648..2147483647 uint32:0..4294967295 Problem 1:a+b=? 观察人工计算的方法:竖式加法 223 + 996 ----------- 9 3+6=9 1 2+9=11,当前位1,进位1 2 2+9+1=12,当前位2,进位1 1 进位的1 ----------- 1219 例题1:高精度加法1553 1、高精度数的存储,用字符串读入 2、高精度加法 3、高精度结果的输出 Problem 2:a-b=? 竖式减法: 927 - 896 ----------- 1 7-6=1 3 12-9=3,借位12 0 (9-1)-8=0 ----------- 31 例题2:高精度减法1554 1、高精度数比较 2、高精度减法 Problem 3:a*b=? 竖式乘法: 1. 高精度乘单精度,比如12345*9=? 12345 * 9 -------------- 45 5*9=45 36 4*9=36 27 3*9=27 18 2*9=18 + 9 1*9=9 -------------- 111105 高精度数乘以单精度 Problem 3:a*b=? 竖式乘法: 2. 高精度乘高精度,比如12345*12345=? 问题转化为若干个高精度乘单精度之和 例题3:高精度乘法1555 高精度数乘以高精度 Problem 4:a/b=? 竖式除法 36 12345 √ 452678 37035 12345*3=37035 8232 45267-37035=8232 82328 下一位再次减法 74070 12345*6=74070 8258 82328-74070=8258 余数 例题4:高精度除单精度1556 高精度数除以单精度 高精度数除以单精度----优化 例题5:高精度除高精度1557 高精度除高精度 例题6:求n! 1570 例题7:回文数(NOIP1999普及)1267 【问题描述】输入两个整数x,y,输出它们的和。 【文件输入】输入两个整数x,y(0=x,y=10^100) 【文件输出】输出它们的和 【样例输入】 123 234 【样例输出】357 void init(int a[]) { string s; cins; //读入字符串s a[0]=s.length(); //用a[0]计算字符串s的位数 for(i=1;i=a[0];i++)a[i]=s[a[0]-i]-0; //将数串s转换为数组a,并倒序存储. } void jia(int a[],int b[]) //计算a=a+b { int i,k; if(a[0]b[0])a[0]=b[0]; //确定加法最大位数 for(i=1;i=a[0];i++)a[i]+=b[i]; //逐位相加 for(i=1;i=a[0];i++) { a[i+1]+=a[i]/10; a[i]%=10; } //处理进位 if(a[a[0]+1]0)a[0]++;//修正a的位数(a+b最多只能进一位) } void print(int a[]) //打印输出 { int i; if(a[0]==0){cout0endl;return;} for(i=a[0];i=1;i--)couta[i]; coutendl; } 提示:注意是大数减小数 Description   输入两个整数x,y,输出它们的差x-y。 Input   输入两个整数x,y(0 = x,y

文档评论(0)

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

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

1亿VIP精品文档

相关文档