Java:使用链表将大数相乘



我应该写一个函数,将两个链表中的两个大数字相乘。我需要帮助找出一种算法,该算法可以像在笔和纸上解决它一样。这是我的想法:

我会使用嵌套的 for 循环来迭代两个列表,同时乘以每个元素,但我不确定如何处理携带情况。我已经实现了一个添加两个整数链表的函数。任何意见将不胜感激。

我会选择递归(如果你没有听说过递归,你可能会忽略这个答案;你迟早会学会的(。

我以乘法 152 * 463 为例。我的计算器告诉我预期结果是 70376。我的想法是从 2 中分离出 152 得到 15 和 2,然后将 15 * 463 和 2 * 463 相乘:

15 * 463 = 6945. Needs to be multiplied by 10 because the 15 were in the 10s’ position. 6945 * 10? Just add a zero: 69450.
2 * 463 = 926.
Product is 69450 + 926 = 70376.

在您的代码中,15 * 463 是通过对正在编写的乘法方法的递归调用获得的。乘以 10 很容易,只需附加一个零即可。2 * 463 更简单,因为我们乘以 1 位数字。为此子任务编写一个新的递归方法。您已经拥有的添加两个链表的函数将完成该作业。

相关内容

  • 没有找到相关文章

最新更新