《高精度加法高精度乘单精度课件.ppt》由会员分享,可在线阅读,更多相关《高精度加法高精度乘单精度课件.ppt(20页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、关于高精度加法高精度乘单精度第1页,此课件共20页哦一、加法第2页,此课件共20页哦一、模拟两个数的算术预算?加多少次呢?98567 658第3页,此课件共20页哦一、转换第4页,此课件共20页哦1、数字的读入,一般是以“字符串”的形式进行读入,与我们刚才模拟的两个数相加,有什么不同,出现什么问题,请大家思考。怎么解决这个问题。将字符串进行倒序处理,倒序存入一个整型或长整型数组中。第5页,此课件共20页哦读入、转换与存放字符串转换为数字数组存放,顺序读入,倒序存放,利于计算的时候低位对齐,由低位到高位计算;alen-i+1:=ord(si)-ord(0);第6页,此课件共20页哦二、运算第7页
2、,此课件共20页哦由低位向高位,逐位相加逐位相加会产生什么问题?进位第8页,此课件共20页哦计算逐位运算,运算规则:倒序存放保证了对位相加,运算规则本位加进位;for i:=1 to len do begin ci:=+ai+bi+jw;jw:=ci div 10;ci:=ci mod 10;end;请问,jw在进行第一次相加之前,有没有确定的值?第9页,此课件共20页哦最后一次相加后,jw不等于0,又该怎么办呢?if jw0 then begin inc(len);clen:=jw mod 10;jw:=jw div 10;end;第10页,此课件共20页哦三、输出第11页,此课件共20页哦
3、加完和进位之后,就要将结果输出。之前我们的所有操作都是倒序的,现在我们要将结果再次倒序,才能正确输出正序的结果。第12页,此课件共20页哦请将高精度加法用过程模块化procedure add(a,b:arr;var c:arr);其中a0,b0,c0用来表示各个数组的长度。第13页,此课件共20页哦二、乘法高精度乘单精度第14页,此课件共20页哦1、高精度乘单精度类似高精度加法,逐位相乘,注意进位;for i:=1 to len do begin ci:=ci+ai*k;ci+1:=ci+1+ci div 10;ci:=ci mod 10;end;第15页,此课件共20页哦2、注意最高位进位;
4、while clen+1 0 do begin inc(len);clen+1:=clen div 10;clen:=clen mod 10;end;c0:=len;第16页,此课件共20页哦请将高精度乘单精度用过程模块化procedure mul(a:arr;k:longint;var c:arr);其中a0,c0用来表示各个数组的长度。第17页,此课件共20页哦习题1,阶乘问题描述:计算N的阶乘 输入格式:输入文件中只有一个整数N 输出格式:要求输出一个整数,表示N的阶乘 输入样例:5输出样例:120数据规模与约定:100%的数据中,0 N 50习题2,阶乘和问题描述:用高精度计算出S=1
5、!+2!+3!+n!(n50)其中“!”表示阶乘,例如:5!=5*4*3*2*1。输入正整数N,输出计算结果S。输入格式:输入文件中只有一个整数N 输出格式:要求输出一串数字,表示N的阶乘和 输入样例:5输出样例:153数据规模与约定:100%的数据中,0 N 50第18页,此课件共20页哦5、义务植树(tree)习题3、植树【问题描述】植树,按一张图纸(如图1),并说明要求:所有同学植的树要成一个等腰三角形,等腰三角形的两条腰上按顺序都是植1棵树,其他位置植树棵数等于它的左上角和右上角所植树的和。一定不能弄错,要分工协作,把这次植树活动做好。小明负责本小组植树棵数的计算,例如第i行第j个位置应植多少棵树。你能帮助小明完成计算任务吗?【输入格式】输入文件只有1行:i和j两个数(1=i,j=101,j=i),中间隔一个空格,表示植树位置为第i行第j个位置(从左往右数第j个)。【输出格式】输出只有一个数:所求位置上应植数的棵数。【输入输出样例】第19页,此课件共20页哦03.04.2023感谢大家观看第20页,此课件共20页哦
限制150内