算法 —— 高精度
1. 概念
什么是高精度
在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿大的数字,一般这类数字我们统称为高精度数。
高精度算法
高精度算法是用计算机对于超大数据的一种模拟加、减、乘、除、乘方、阶乘、开方等运算。
对于一个很大的数字,(N≥10^100),我们采用将这个数值拆开成一位一位或者四位四位的数字组合存储到数组中,用一个数组去表示这一个数值。
用这样的高精度数做加减乘除运算和常规操作一样,也涉及进位、退位的处理,特点是从低位往高位进行计算
2. 例题
①两高位数乘法
※P1303 洛谷 A*B Problem
题目描述
求两数的积。
输入格式
两行,两个整数。
输出格式
一行一个整数表示乘积。
样例输入 #1
1 2
样例输出 #1
2
思路
-
以字符串的方式读入数字,并分别保存在a,b字符数组中。
-
用strlen函数计算字符数组中总字符数(高精度数的位数)
-
完成高精度数的乘法运算只需列一个竖式的乘法运算就能轻松完成程序设计。找到其中的关键规律:个位和个位相乘,结果保存在个位,个位和十位相乘,结果保存在十位,十位和十位相乘结果保存在百位,依次类推可以得出递推公式,第i位的数和第j位数相乘,结果保存在第(i+j-1)位。 所以程序只需再定一个数组c

本文介绍了高精度算法的概念,包括如何存储和处理超大数字,并通过洛谷P1303题为例,详细讲解了两高位数乘法的解题思路和源码实现。
最低0.47元/天 解锁文章
159

被折叠的 条评论
为什么被折叠?



