我需要在不使用任何外部库的情况下用java划分非常大的数(家庭作业)

我需要在不使用任何外部库的情况下用java划分非常大的数(家庭作业),java,Java,我需要能够在不使用任何外部java函数或库的情况下执行193875728925839823999492934/14583949053930202。我的每个数字都存储在一个链表中。我还能做什么 有人能帮我划分一个算法吗。我已经尝试了几个小时了,但我什么也没有得到。“外部”Java库?(如果可以使用,BigInteger是内置的。) 否则,最简单的除法可能是二进制除法,如下所示。您知道log(a/b)=log(a)-log(b),因此您可以估计结果中的位数。让r作为结果。在伪代码中 for i =

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

有人能帮我划分一个算法吗。我已经尝试了几个小时了,但我什么也没有得到。

“外部”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
for i=结果可能具有的最高有效位,向下迭代到0
如果(r+2^i)*b“外部”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
for i=结果可能具有的最高有效位,向下迭代到0

如果(r+2^i)*b不算是“外部的”?这只是使用计算机中的两个数字列表而不是纸上的两个数字列表进行的长除法。假设减法,你可以这样做。
biginger
算是“外部的”吗?这是一种长除法,使用计算机中的两个数字列表,而不是纸上的两个数字列表。假设减法,你可以做。