


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
竞赛辅导3-高精度计算在利用计算机进行数值计算时,如果对数值的要求在允许范围内,可以利用数值型数据进行存储,数值范围较大,计算精度要求较高,就需要采用软件的方法来处理相应运算,这类算法统一称为高精度计算算法。在计算机上进行高精度计算,首先要处理好以下几个基本问题:1)数据的接收与存储;2)计算结果位数的确定;3)进位处理和借位处理;4)商和余数的求法;这几个问题的常见解决策略是:1) 数据的接收与存储:、当输入的数值在计算机允许的范围内时,可以用数值型变量来接收数据。、当输入的数据超过计算机允许显示的精度范围时,采用字符来接收数据。、分离各位数字。2) 计算结果位数的确定:利用对数函数L=trunc(ln(n*(n-1)*(n-2)*.2*1)/ln(10)+1,求位数 或ln(n)+ln(n-1)+1、两数之和的位数最大为较大的数的位数加1。、乘积的位数最大为两个因子的位数之和。、阶乘与乘方的位数可以采用对数运算来确定计算结果的位数。3) 进位处理和借位处理:ai,bI规则:4) 商和余数的求法:设A,B分别为不大于9位的整数,则高精度加法程序 Program gjd-jiafa.cpp;#include #include #include main() char str130,str230; int a30,b30; scanf(%s%s,str1,str2); / puts(str1); / puts(str2); int len1,len2; len1=strlen(str1); len2=strlen(str2); /printf(%d %dn,len1,len2); int i,k; / for (i=0;i=0;i-) ak=str1i-1-48; k=k+1; k=0; for (i=len2;i=0;i-) bk=str2i-1-48; k=k+1; if (len1len2) for (i=len1;ilen2;i+)ai=0; else for (i=len2;ilen2) k=len1;else k=len2; int f=0; for (i=0;i=10) f=ai / 10;else f=0; ai=ai % 10; / printf(%d ,ai); /printf(overn); if (f!=0) ak=f; if (f!=0) printf(%d,ak); for (i=k-1;i0 ;i-) printf(%d,ai); printf(%dn,a0); getch(); .练习:设计高精度减法程序例1、 高精度乘法运算Program gjd-chengfa.cpp;#include #include #include main() char str130,str230; scanf(%s%s,str1,str2); int len1,len2; len1=strlen(str1); len2=strlen(str2); printf(%d %dn,len1,len2); int a30,b30,c30; int i,j,k;k=0; for (i=len1-1;i=0;i-) ak=str1i-0; k=k+1; for (i=0;i=0;i-) bk=str2i-0; k=k+1; for (i=0;ilen2;i+)printf(%d,bi); printf(%n); for (i=0;ilen1+len2;i+) ci=0; int f; for (i=0;ilen1;i+) f=0; for (j=0;j=0;i-) printf(%d,ci); printf(%n); getch();例3、求n!的精确值,每个单元存放四位数。(用高精度算法求出每一位数)Program n!-1.cpp;/无压缩高精度计算#include #include #include main() int n; scanf(%d,&n); printf(%dn,n); int e,f1,f2,i,j,k;e=1; int c30;c1=1; for(i=1;i=n;i+) f1=0;f2=0; for (j=1;j0;i-) printf(%d,ci); printf(n); getch(); program n!-2.cpp: 有压缩计算#include #include #include main() int n; scanf(%d,&n); printf(%dn,n); int e,f1,f2,i,j,k;e=1; int c30;c1=1; for(i=1;i=n;i+) f1=0;f2=0; for (j=1;j0;i-) printf(%d%d%d%d,ci/1000,ci/100 % 10,ci/10 %10,ci%10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 德清县轨道交通集团有限公司杭州至德清市域铁路工程涉及220kV窑铁2R09线48#-50#迁改工程环评报告
- 2025年网页设计师创意思维测试试题及答案
- 2025年成囊材料项目建议书
- 2025年DDN线路密码机项目建议书
- 南白中学高一数学试卷
- 隆阳区小学数学试卷
- 柳州市初三三模数学试卷
- 庐阳二模中考数学试卷
- 网络安全与动物药品支付风险关联研究报告
- 南宫丰翼小升初数学试卷
- 学校维修维护合同模板
- 设备安装应急应对预案
- 民事诉讼委托书
- 初中一年级思维逻辑训练数学题300道附答案
- 医疗机构医疗废物暂存间消毒记录表
- JT-T-617.6-2018危险货物道路运输规则第6部分:装卸条件及作业要求
- DL-T5372-2017水电水利工程金属结构与机电设备安装安全技术规程
- 新时代高职英语(基础模块)Unit1 -2
- 糖尿病患者延续性护理的研究进展
- FZT 95032-2021 长环蒸化机行业标准
- 2023年临沧市市级单位遴选(选调)工作人员考试真题
评论
0/150
提交评论