Advertisement

大数的加法以及乘法

阅读量:

大数溢出问题

当两个int类型的数值进行加法或乘法运算时,有可能引发大数溢出的现象。在诸多笔试及面试题目中,常常隐含着此类大数溢出的问题。通常情况下,解决这类问题需要借助字符串(或字符数组)来实现。

主要思路

1、采用字符串形式对数字进行表示。为便于计算并处理进位问题,可以将数字反转后以字符串形式存储,并将其转换为字符数组。原始数字在数组中是按照高位到低位的顺序排列的,而经过转换后,字符数组中的顺序则变为低位到高位。例如,针对数字123,在转换后的字符数组应为a = {'3', '2', '1'}

2、对于两个数字所对应的字符数组,在相同索引位置(即对应位数)上进行相加操作。

3、处理每一位可能出现的进位情况。若在第i位发生进位,则需同时更新第i位与第i+1位的数值。

4、输出结果时需注意,由于数字在转换过程中被反转了顺序,因此输出时应从后向前逆序打印,并且按照常规阅读习惯,逆序后的字符数组中位于最前面的零应当被忽略不输出。

大数加法

复制代码
    /** * 数组实现大数相加(正数)
     * * key:
     * 1、字符串反转,转为数组
     * 2、数组对应位置相加
     * 3、处理进位
     * 4、数组倒序输出,忽略前置0
     */
    public stati

全部评论 (0)

还没有任何评论哟~