大数加法的串行算法还好说,从低位向高位加就可以实现了,比如:首先计算 a[0] + b[0],结果为 9+9=18,所以c[0]=18 % 10 = 8,进位=1 n ... 4 3 2 1 0 a | . . . . 8 9 |+ b | . . . . 1 9 | -------------------------进位| 1 - | c | 8 |接着计算 a[1] + b[1] + 进位,比如这里的 8+1+1 = 10,所以 c[1] = 0,进位=1 n ... 4 3 2 1 0 a | . . . . 8 9 |+ b | . . . . 1 9 | -------------------------进位| 1 1 - | c | 0 8 |依次往下计算直到结算完成
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
假设每个线程负责竖着将每一位相加:值 8888888898进位 11111111110------------------新值 19999999908进位2 00000000010; 接着 进位2 左移变成新值 19999999908进位2 000000000100------------------新值 19999999008进位3 00000000100; 进位3左移... 进位结果一直不为零,这样就没完没了了 :(