高精度计算(加减乘)课件

上传人:嘀**** 文档编号:251872086 上传时间:2024-11-10 格式:PPT 页数:16 大小:225.50KB
返回 下载 相关 举报
高精度计算(加减乘)课件_第1页
第1页 / 共16页
高精度计算(加减乘)课件_第2页
第2页 / 共16页
高精度计算(加减乘)课件_第3页
第3页 / 共16页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,高精度计算,C/C+,中的,int,类型能表示的范围一般是,-2,31,2,31,1,。,unsigned,类型能表示的范围是,0,2,32,1,,即,0,4294967295,。所以,,int,和,unsigned,类型变量,都不能保存超过,10,位的整数。,我们如何进行大整数的运算?比如如何计算两个,100,位整数的和?,如果有一个长度为,100,位的大整数,我们如何存储?,1,大整数加法,问题描述,求两个不超过,100,位的非负整数的和。,输入数据,有两行,每行是一个不超过,100,位的非负整数,没有多余的前导,0,。,输出要求,一行,即相加后的结果。结果里不能有多余的前导,0,,即如果结果是,342,,那么就不能输出为,0342,。,输入样例,22222222222222222222,33333333333333333333,输出样例,Output Sample:,55555555555555555555,几个需要考虑的问题:,1,、如何存储大整数?,数组,2,、如何实现加法?,逐位相加,3,、如何处理进位?,向数组的高位进位,3,1,0,2,2,6,3,8,6,6,7,6,7,8,3,6,9,0,5,4,+,10,7,7,10,5,12,12,8,11,10,0,8,7,0,6,2,3,9,1,1,1,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,参考程序:,#include,#include,using namespace std;,string s1,s2;,int a100,b100,c100,jw;,int main(),cins1;,cins2;,/,把,s1,的长度,放入到,a0;,a0=s1.size();,/,把个位放入,a1,,把十位放入,a2,把百位放入,a3,for(int i=a0-1;i=0;i-),int j=a0-i;,aj=s1i-0;,/,把,s2,的长度,放入到,b0;,b0=s2.size();,/,把个位放入,b1,,把十位放入,b2,把百位放入,b3,for(int i=b0-1;i=0;i-),int j=b0-i;,bj=s2i-0;,/,在,c0,放入,,a0,和,b0,的最大值,和的最少位数,if(a0b0),c0=a0;,else,c0=b0;,/,按位加法,for(int i=1;i0),c0+;,cc0=jw;,/,输出答案,for(int i=c0;i=1;i-),couts1;cins2;,/,预处理,if(s2.size()s1.size()flag=true;,if(s2.size()=s1.size(),if(flag=true),cout=0;i-),int j=a0-I;,aj=s1i-0;,b0=s2.size();,for(int i=b0-1;i=0;i-),int j=b0-I;,bj=s2i-0;,/,按位减法,c0=a0;,for(int i=1;i=c0;i+),if(ai-bi=1;i-),if(ci0)break;,elsec0-;,if(c0=0)c0=1;/,答案为,0,/,输出答案,for(int i=c0;i=1;i-),couts1;,cinb;,a0=s1.size();,/,把个位放入,a1,,把十位放入,a2,把百位放入,a3,for(int i=a0-1;i=0;i-),int j=a0-i;,aj=s1i-0;,/,被除数位数为最终位数,c0=a0;,/,按位计算,for(int i=1;i=c0;i+),ci=ai*b;,/,处理进位,,最高位不处理,for(int i=1;i=10),ci+1+=ci/10;,ci=ci%10;,/,输出,for(int i=c0;i=1;i-),couts1s2;,/a0,里存入长度,每一位倒序存入,ai,a0=s1.size();,for(int i=a0-1;i=0;i-),int j=a0-i;,aj=s1i-0;,b0=s2.size();,for(int i=b0-1;i=0;i-),int j=b0-i;,bj=s2i-0;,/b逐位乘数组a,for(int i=1;i=b0;i+),for(int j=1;j1&cc0=0),c0-;/更新c的位数,for(int i=c0;i0;i-),coutci;,return 0;,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!