ACM暑期培训资料(共29张).pptx
《ACM暑期培训资料(共29张).pptx》由会员分享,可在线阅读,更多相关《ACM暑期培训资料(共29张).pptx(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、高精度运算理学院计算机系理学院计算机系 姚娟姚娟计算机能做的和不能做的 计算机的限制:精度、范围计算机的限制:精度、范围(: -231 231-1, 即即 -2 147 483 648 2 147 483 647) 计算机:突破了人的运算速度极限计算机:突破了人的运算速度极限 对运算的数据进行了对运算的数据进行了“合理合理”的假设的假设 要解决假设之外的事情,它们的数量不多、但常要解决假设之外的事情,它们的数量不多、但常常极其重大。比如中国的粮食安全问题:常极其重大。比如中国的粮食安全问题: 13亿人口、人均需要多少亿人口、人均需要多少 多少耕地、亩产多少、上年余积多少多少耕地、亩产多少、上年
2、余积多少 大整数加法1、链接地址 2、问题描述求不多于100个不超过100 位的非负整数的之和。输入数据有n行(n212;(11) 1i=0;缺位前导补缺位前导补0(21) 2i=0;(01) 去掉前导数字去掉前导数字0,确定数组当前长度,确定数组当前长度;(0=10)a11k/10;对数值超过对数值超过9的位进行归整处理的位进行归整处理akk%10;(ak0) 1;确定数组的最终长度确定数组的最终长度 ;1503 参考程序 () 10; 110210; 00; 12;10=0;1=1;(1);(00) ;2();(2-10=0; )2 = i - 0;(1212);(1-1=0)1i; 0;
3、大整数乘法1、链接地址 2、问题描述求两个不超过200 位的非负整数的积。输入数据有两行,每行是一个不超过200 位的非负整数,没有多余的前导0。输出要求一行,即相乘后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。输入样例1234567890098765432100输出样例1219326311126352690000 大整数乘法(2389) 解题思路 在程序中,用在程序中,用 1200和和 2200分别存放两个乘分别存放两个乘数,用数,用400来存放积。计算的中间结果也都存在来存放积。计算的中间结果也都存在中。长度取中。长度取400是因为两个是因为两个200
4、位的数相乘,积位的数相乘,积最多会有最多会有400 位。位。10, 20, 0都表示个位。都表示个位。 计算的过程基本上和小学生列竖式做乘法相同。计算的过程基本上和小学生列竖式做乘法相同。为编程方便,并不急于处理进位,而将进位问题为编程方便,并不急于处理进位,而将进位问题留待最后统一处理。留待最后统一处理。 现以现以 83549 为例来说明程序的计算过程。为例来说明程序的计算过程。先算先算8359。59 得到得到45 个个1,39 得到得到27 个个10,89 得得到到72 个个100。由于不急于处理进位,所以。由于不急于处理进位,所以8359 算完后,结算完后,结果如下:果如下:大整数乘法(
5、2389) 解题思路接下来算接下来算45。此处。此处45 的结果代表的结果代表20 个个10,因此要,因此要 c120,变为:,变为:再下来算再下来算43。此处。此处43 的结果代表的结果代表12 个个100,因此要,因此要 c2 12,变为:,变为:大整数乘法(2389) 解题思路最后算最后算 48。此处。此处48 的结果代表的结果代表 32 个个1000,因此要,因此要 c3 32,变为:,变为:乘法过程完毕。接下来从乘法过程完毕。接下来从 c0开始向高位逐位处理进位问题。开始向高位逐位处理进位问题。c0留下留下5,把,把4 加到加到c1上,上,c1变为变为51 后,应留下后,应留下1,把
6、,把5 加到加到c2上上最终使得最终使得c 里的每个元素都是里的每个元素都是1 位数,结果就位数,结果就算出来了:算出来了:规律:一个数的第规律:一个数的第i 位和另一个数的第位和另一个数的第j 位相乘所得的数,一位相乘所得的数,一定是要累加到结果的第定是要累加到结果的第 位上。这里位上。这里i, j 都是从右往左,从都是从右往左,从0 开始数。开始数。2389 参考程序 ; 200+10; a; c2*; 12; ;字符串字符串s转换为整型数组转换为整型数组t ( *t) ;();(0)tm1-0;2389 参考程序乘法:输入用字符串表示的长整数乘法:输入用字符串表示的长整数m1、m2返回一
7、个表示两个数乘积长度的指针,及表示乘积的一个整型数组返回一个表示两个数乘积长度的指针,及表示乘积的一个整型数组c ( *m1 *m2 *) ;(0) 用第二个数乘以第一个数用第二个数乘以第一个数,每次一位每次一位 (0)ci*bj;先乘起来先乘起来,后面统一进位后面统一进位(0=10)c11i/10;cii%10;2*1;(ci0 i0) 1; 跳过高位的跳过高位的0*;2389 参考程序 () ;(12)(0)ai=0; bi=0;(1);(2);(0=0)cj; 0;大整数除法1、链接地址 2、问题描述求两个大的正整数相除的商输入数据 第1 行是测试数据的组数n,每组测试数据占2 行,第1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ACM 暑期 培训资料 29
限制150内