前言
乍一看这个标题,你可能会觉得奇怪:实现两个数之和有什么好说的,直接使用 a + b不就好了。确实我们一般都是这么做的,那么如果此时加个条件,不允许使用 “+” 运算符,那又该怎么做呢。
加法的计算过程
1.我们先来分析一下平时如何在演草纸上计算两个数字之和的。以159 + 357 为例
(1) 9 + 7 = 16,则和的个位为6,同时向十位进1
(2) 5 + 5 + 1 = 11,则和的十位为1,同时向百位进1
(3) 1+ 3 + 1 = 5,则和的百位为5,此时即可得出和为516
在计算过程中,我们直接将低位向高位进位的的数字用在了高位的加法中,如计算个位 9 + 7得到的进位1直接参与到了计算十位 5 + 5 + 1 的 过程中。
2.现在我们来改一下这个算过程
(1) 9 + 7 = 16,此时和的个位为6,需要向十位进1 * 10,我们把这个10放一边
(2) 5 + 5 = 10,此时和的十位为0,需要向百位进10 * 10 = 100,我们把这个100也放在一边
(3) 1 + 3 = 4,此时和的百位为4,目前和是406,现在把前面进位得到的10 和 100都加上得到516
在这种方式下,我们把低位向高位进位的数字,先放在一边,等所有高位计算完毕之后,再把这些需要进位的数字加上。最终得到了计算的结果。如果在加这些进位数字的时候又产生了进位,那么我们可以循环执