我需要在java中划分非常大的数字而不使用任何外部库(Homework)

时间:2012-02-24 22:24:55

标签: java

我需要能够在不使用任何外部java函数或库的情况下执行1938757289258398239399949292934/14583949053930202。我将我的数字的每个数字存储在一个链表中。我还可以做些什么?

有人可以帮助我划分算法。我已经尝试了几个小时了,而且我没有到达任何地方。

1 个答案:

答案 0 :(得分:4)

“外部”Java库? (BigInteger是内置的,如果你可以使用它。)

否则,最简单的除法方法可能是二进制,如下所示。您知道log(a/b) = log(a) - log(b),因此您可以估算结果中的位数。让r成为结果。在伪代码中,

for i = the most significant bit the result could have, iterating down to 0
  if (r + 2^i) * b <= a
    r += 2^i