高精度运算1.ppt

高精度运算1.ppt

ID:49431172

大小:434.00 KB

页数:30页

时间:2020-02-06

高精度运算1.ppt_第1页
高精度运算1.ppt_第2页
高精度运算1.ppt_第3页
高精度运算1.ppt_第4页
高精度运算1.ppt_第5页
资源描述:

《高精度运算1.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、高精度运算转换数据类型加法运算减法运算乘法运算除法运算改善高精度运算的效率分析近几年联赛中高精度类的试题数据类型的转换在变量运算对象的数值范围为任何数据类型所无法容纳的情况下,采用整数数组(每一个元素对应一位十进制数,由其下标顺序指明位序号)。1、采用数串形式输入,并将其转化为整数数组。2、用一个整数变量记录数据的实际长度(即数组的元素个数)3、该数组的运算规则如同算术运算。一.高精度数的存储,用字符串读入voidinit(inta[]){strings;cin>>s;//读入字符串sa[0]=s.length();//用a[0]计算字符串s的位数for(i=1;i<=a[0]

2、;i++)a[i]=s[a[0]-i]-'0';//将数串s转换为数组a,并倒序存储.}987654s1[0]…….....s1[n-1]987654a[n]…….....a[1]二.计算结果位数的确定高精度加法:两数之和的位数最大为较大数的位数加1;高精度减法:两数之差的位数最大为较大数的位数;高精度乘法:两数乘积的位数最大为两个因子的位数和阶乘和乘方:可利用对数运算来确定2^p的位数为:[log10(2^p)+1]=[p*ln2/ln10]+1高精度除法:两数相除的位数最大为较大数的位数减较小的位数加1三.高精度数比较比较数组a和b的大小关系,若a>b返回1,a

3、,a=b返回0intcompare(inta[],intb[]){inti;if(a[0]>b[0])return1;//a的位数大于b则a比b大if(a[0]0;i--)//从高位到低位比较{if(a[i]>b[i])return1;if(a[i]0

4、;i--)cout<

5、,k;if(a[0]0)a[0]++;//修正新的a的位数(a+b最多只能的一个进位)}1.高精度加法#includeusingnamespacestd;inta[101]={0},b[101]={0};voidinit(inta[]){inti;strings;cin>>s;a[0]=s.length(

6、);for(i=1;i<=a[0];i++)a[i]=s[a[0]-i]-'0';}voidprint(inta[]){inti;if(a[0]==0){cout<<0<0;i--)cout<

7、0)a[0]++;}intmain(){init(a);init(b);jia(a,b);print(a);return0;}N进制运算1、当前位规范由%10改为%n2、进位处理由/10改为/n3、其他运算规则不变应用举例1若一个数(首位不为零)从左向右读与从右向左读都是一样,我们就将其称之为回文数。例如:给定一个10进制数56,将56加65(即把56从右向左读),得到的121是一个回文数。又如,对于10进制数87:STEP1:87+78=165STEP2:165+561=726STEP3:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。