最新03.高精度计算(C++版)教学讲义ppt课件.ppt

最新03.高精度计算(C++版)教学讲义ppt课件.ppt

ID:62047671

大小:487.50 KB

页数:45页

时间:2021-04-13

最新03.高精度计算(C++版)教学讲义ppt课件.ppt_第1页
最新03.高精度计算(C++版)教学讲义ppt课件.ppt_第2页
最新03.高精度计算(C++版)教学讲义ppt课件.ppt_第3页
最新03.高精度计算(C++版)教学讲义ppt课件.ppt_第4页
最新03.高精度计算(C++版)教学讲义ppt课件.ppt_第5页
资源描述:

《最新03.高精度计算(C++版)教学讲义ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、03.高精度计算(C++版)利用计算机进行数值计算,有时会遇到这样的问题:有些计算要求精度高,希望计算的数的位数可达几十位甚至几百位,虽然计算机的计算精度也算较高了,但因受到硬件的限制,往往达不到实际问题所要求的精度。我们可以利用程序设计的方法去实现这样的高精度计算。介绍常用的几种高精度计算的方法。高精度计算中需要处理好以下几个问题:(1)数据的接收方法和存贮方法数据的接收和存贮:当输入的数很长时,可采用字符串方式输入,这样可输入数字很长的数,利用字符串函数和操作运算,将每一位数取出,存入数组中。另一种方法是直接用循环加数组方

2、法输入数据。voidinit(inta[])//传入一个数组{strings;cin>>s;//读入字符串sa[0]=s.length();//用a[0]计算字符串s的位数for(i=1;i<=a[0];i++)a[i]=s[a[0]-i]-'0';//将数串s转换为数组a,并倒序存储}另一种方法是直接用循环加数组方法输入数据。(2)高精度数位数的确定位数的确定:接收时往往是用字符串的,所以它的位数就等于字符串的长度。(3)进位,借位处理加法进位:c[i]=a[i]+b[i];if(c[i]>=10){c[i]%=10;++c

3、[i+1];}减法借位:if(a[i]

4、

5、lenc<=lenb){c[lenc]=a[lenc]+b[lenc]+x;//两数相加x=c[lenc]/10;c[lenc]%=10;lenc++;}c[lenc]=x;if(c[

6、lenc]==0)lenc--;//处理最高进位for(i=lenc;i>=1;i--){cout<#include#includeusingnamespacestd;intmain(){inta[256],b[2

7、56],c[256],lena,lenb,lenc,i;charn[256],n1[256],n2[256];memset(a,0,sizeof(a));memset(b,0,sizeof(b));memset(c,0,sizeof(c));printf("Inputminuend:");gets(n1);//输入被减数printf("Inputsubtrahend:");gets(n2);//输入减数if(strlen(n1)

8、

9、(strlen(n1)==strlen(n2)&&strcmp(n1,n2

10、)<0))//strcmp()为字符串比较函数,当n1==n2,返回0;//n1>n2时,返回正整数;n1

11、<=lenb-1;i++)b[lenb-i]=int(n2[i]-'0');//减数放入b数组i=1;while(i<=lena

12、

13、i<=lenb){if(a[i]1))lenc--;//最高位的0不输出for(i=lenc;i>=1;i--)cout<

14、精度乘法。输入两个正整数,求它们的积。【算法分析】类似加法,可以用竖式求乘法。在做乘法运算时,同样也有进位,同时对每一位进行乘法运算时,必须进行错位相加,如图3、图4。分析c数组下标的变化规律,可以写出如下关系式:ci=c’i+c”i+…由此可见,ci跟a[i]*b[j]乘积

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

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

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