我需要能够在不使用任何外部java函数或库的情况下执行1938757289258398239399949292934/14583949053930202。我将我的数字的每个数字存储在一个链表中。我还可以做些什么?
有人可以帮助我划分算法。我已经尝试了几个小时了,而且我没有到达任何地方。
答案 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