【问题标题】:Java multiplying two BigInt objectsJava 将两个 BigInt 对象相乘
【发布时间】:2011-11-17 08:14:13
【问题描述】:

有一个 BigInt 类和两个对象 num1 和 num2。我有一个实验室任务,我必须将 num1 和 num2 相乘。它们可以是最多 50 位的整数。该类有一个大小和一个数字。大小是输入的整数中的位数,而数字是一个包含整数的数组。

我必须编写一个将这两个对象相乘并返回乘积的方法。我对如何开始这个有点困惑。我见过有两个循环和一个基础的例子。我不知道基地将用于什么。

任何指向正确方向的指针将不胜感激。

【问题讨论】:

标签: java arrays bigint


【解决方案1】:

我假设 base 是十进制/十六进制等,对于更通用的实现...

一般来说,你需要使用正常的长乘法,就像在学校学的那样。

另请注意,结果可能长达 100 位 - 如果您只需要 50 个最低有效位,您可以稍微优化长乘法(几乎将其减半)。

【讨论】:

  • 请注意,与在学校学习的正常长除法相反,最好从一开始就将数据写入输出数组,而不是创建中间数组。使算法更复杂,但仍然非常基本 - 见鬼 Knuth 在少数几行 MIX 汇编中实现了那个东西 ;) 提醒一下:n 位和 m 位数字的任何乘法最多有 m+n 位.
猜你喜欢
  • 2021-02-24
  • 1970-01-01
  • 1970-01-01
  • 2021-02-27
  • 1970-01-01
  • 2013-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多