【问题标题】:multiply 2 arraysLists together in java在java中将2个arrayLists相乘
【发布时间】:2012-09-14 02:36:52
【问题描述】:

所以我有两个 arrayLists 代表两个数字。这样我就不必使用 BigInt。比如

ArrayList<Integer> LargeInt = [2,3,6,4] would really equal 2,364
ArrayList<Integer> LargeInt2 = [8,7,9,4,6] would be 87,946

我的目标是想办法将这两个数字相乘并得到一个字符串的答案。我知道在放入字符串之前将两个数字相乘需要放入另一个数组中,这样它就不会因更大的数字而崩溃。我也知道这将是一个 for 循环放入另一个循环。但我发现很难制作一个将这两个数字相乘的代码。相乘的两个数组可以是任意数。

【问题讨论】:

  • BigInteger 将比您最终创建的任何内容都快得多。
  • 在这种情况下我不能使用 bigInt。这使它变得更加困难。我知道 bigInt 更好,但在这种情况下它不是一个选择。
  • 你还记得怎么用手做乘法吧?从小学开始?现在用代码来做。
  • @user:最好的开始方式是编写代码。向我们展示您的尝试。
  • @Bohemian:这是家庭作业。一位老师要求他重新发明轮子。

标签: java arraylist int


【解决方案1】:

假设这是作业,这里是你需要做什么的无代码说明:

  • 定义一个包装ArrayList&lt;Integer&gt;的类;假设你称之为ArrayInt
  • 定义一个运算,将两个ArrayInts 相加,并返回等于它们总和的第三个ArrayInt。您可以逐位进行,注意可能进位到一个额外的数字,因此您需要相应地调整结果的大小。
  • 通过在数组列表中添加零来定义一个将您的数字乘以十的幂的操作。同样,该操作应该返回一个新的ArrayInt,而不是修改当前的
  • 定义一个数字乘以一位数的运算。您可以使用乘法或使用加法的简单循环。循环不会运行超过 9 次,所以应该不会太糟糕。
  • 将您拥有的三个运算(加法、数字乘法和 10 次方乘法)组合成您在小学学过的简单乘法算法。

【讨论】:

  • 我同意这一点。但是可能有一些方法可以节省一些运行时间,遵循按位乘法的规则。您可能想查看代码 sn-p 提供的 here 以了解它是如何完成的。
  • @Dr.Java 我严重怀疑节省时间是这里的目标:毕竟,这是一项家庭作业。
  • 也许可以,但这只是一个建议。
猜你喜欢
  • 2016-01-28
  • 2019-07-02
  • 1970-01-01
  • 1970-01-01
  • 2018-02-15
  • 2020-07-05
  • 1970-01-01
  • 2022-09-26
  • 1970-01-01
相关资源
最近更新 更多