在我的项目中,我必须处理在我自己的BigNumber类中作为int[]. 基本上我需要实现这样的东西:
    157 x
    121 y
   ----
    157 result1
   314  + result2
  157   + result3
 ------
 18997  finalResult
但是我该如何实施呢?
我想过用零 (3140, 15700) 扩展 result2,3 并添加它们。但首先我需要在 y 的每个数字之间导航并将其乘以 x 的每个数字。
 
使用对角线方法。制作一个数组,并将每个数字与其他数字相乘,然后填写每个单元格中的数字。
36 x 92 3 6 +-----+-----+ | 2 / | 5 / | 9 | / | / | | / 7 | / 4 | +-----+-----+ | 0 / | 1 / | 2 | / | / | | / 6 | / 2 | +-----+-----+在每个对角线上添加数字。从最不重要的数字(右下角)移到最重要的数字(左上角)。
2 2 (least-significant) (6 + 1 + 4) = 11 (make this 1, and carry the 1 to the next digit) 1 (5 + 7 + 0 + 1(carried)) = 13 (make this 3, and carry the 1) 3 2 + 1(carried) = 3 3 (most-significant)答案是 3312。
制作一个二维数组。用单个数字的乘法填充数组。
像我上面那样写一些逻辑来刮掉对角线。
这应该适用于任意大的数字(只要你还有内存)。