大数的加法以及乘法
发布时间
阅读量:
阅读量
大数溢出问题
当两个int类型的数值进行加法或乘法运算时,有可能引发大数溢出的现象。在诸多笔试及面试题目中,常常隐含着此类大数溢出的问题。通常情况下,解决这类问题需要借助字符串(或字符数组)来实现。
主要思路
1、采用字符串形式对数字进行表示。为便于计算并处理进位问题,可以将数字反转后以字符串形式存储,并将其转换为字符数组。原始数字在数组中是按照高位到低位的顺序排列的,而经过转换后,字符数组中的顺序则变为低位到高位。例如,针对数字123,在转换后的字符数组应为a = {'3', '2', '1'}。
2、对于两个数字所对应的字符数组,在相同索引位置(即对应位数)上进行相加操作。
3、处理每一位可能出现的进位情况。若在第i位发生进位,则需同时更新第i位与第i+1位的数值。
4、输出结果时需注意,由于数字在转换过程中被反转了顺序,因此输出时应从后向前逆序打印,并且按照常规阅读习惯,逆序后的字符数组中位于最前面的零应当被忽略不输出。
大数加法
/** * 数组实现大数相加(正数)
* * key:
* 1、字符串反转,转为数组
* 2、数组对应位置相加
* 3、处理进位
* 4、数组倒序输出,忽略前置0
*/
public stati
全部评论 (0)
还没有任何评论哟~
