2高精度的十进制运算.pptx

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
高精度运算;转换数据类型;数据类型的转换;数据结构与转换方法;加法运算c←a+b(a、b、c为numtype类型) ;求回文数 ;1.将数串s转化为整数数组m;2.判别整数数组m是否为回文数;3.n进制加法运算;4.主程序 ;减法运算c←a-b(a、b、c为numtype类型) ;高精度除法x←x/y(被除数x和除数y为整数) ;;if len=0 then begin writeln;exit;end;{若小数部分的位数为0,则成功退出;否则输出小数点} write(.); if st=0 {若无循环节,则输出小数部分,否则输出循环节前的小数和循环节} then for i←1 to len do write(s[i]) else begin for i←1 to st-1 do write(s[i]); write((); for i←st to len do write(s[i]); write()); end;{else};整数i乘多精度数组a;精确计算n的阶乘n!(7n50);const max=100; n=20; var a:array[1..max]of 0..9; i,j,k;x:integer; begin k:=1; a[k]:=1;{a=1} for i:=2 to n do{a←1*2*3….*n} begin x:=0;{进位初始化} for j:=1 do k do{a=a*i} begin x:=x+a[j]*i; a[j]:=x mod 10;x:=x div 10 end; while x0 do {处理最高位的进位} begin k:=k+1;a[k]:=x mod 10;x:=x div 10 end end; writeln; for i:=k dowento 1 write(a[i]){输出a} end.;乘法运算c←a*b(a、b为numtype类型) ;;麦森数;使用倍增思想,优化幂运算;已知a,计算an: ;算法分析 ;主程序;;计算ans←ans*l ;计算l←l2 ;循环;;问题的规模要求采用高精度计算 ;必须采用倍增思想提高时效;数据结构;输入信息,建立整数数组;计算循环长度;;检查p和tempp的后kk位是否相同;计算t←t+ tempt;计算p←p*tempp,;改善高精度运算的效率 ; 2、整数数组的建立和输出 当输入数串st后,我们从左而右扫描数串st,以四个数码为一组,将之对应的10000进制数存入n数组中。具体方法如下: readln(st);{输入数串st} k←length(st);{取得数串st的长度} for i←0 to k-1 do begin {把st对应的整数保存到数组n中} j←(k-i+3) div 4-1; n[j]←n[j]*10+ord(st[i+1])-48; end;{for} ln←(k+3) div 4; 当得出最后结果a后,必须按照由次高位(a[la-2])到最低位(a[0])的顺序,将每一位元素由10000进制数转换成10进制数,即必须保证每个元素对应四位10进制数??例如a[i]=0015(0≤i≤la-2),对应的10进制数不能为15,否则会导致错误结果。我们按照如下方法输出a对应的10进制数: write(a[la-1]); {输出结果} for i←la-2 downto 0 do write(a[i] div 1000,(a[i]div 100)mod 10,(a[i]div 10)mod 10,a[i]mod 10); ;3、介绍几个基本运算;⑵整数数组除以整数(a←a/i,a为整数数组,i为整数);⑶两个整数数组相乘(a←a*n,a和n为为整数数组);彩票; 从N个数中(不计顺序)取出M个不同的数的取法共有C(N, M)种。这里C(N, M)表示组合数。因此,要使摇出的中奖号码与所选的号码完全相同,概率只有1 / C(N, M)。所以我们要求的值即为C(N, M)。根据组合数的计算公式:;1.我们可以先乘N除1,然后乘(N-1)除2,再乘(N-2)除3,……最后乘(N-M+1)除M。因为连续的K个自然数的积一定能被K!整除,所以在这一过程中不会出现除不尽的情况。同时也使得中间结果比较小,从而提高了程序运行的速度。 2.用一个Longint记录4位数字。数组相当于一个10000进制的数,其中每一个数都是10000进制下的一位数。 ;

文档评论(0)

136****1820 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档