java - 我需要在java中除以非常大的数字而不使用任何外部库(家庭作业)

标签 java

我需要能够在不使用任何外部java函数或库的情况下执行1938757289258398239399949292934/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

关于java - 我需要在java中除以非常大的数字而不使用任何外部库(家庭作业),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9438935/

相关文章:

java - 如何调试 Android 应用程序强制关闭错误?

java - db4o 数据库有 15000+ 对象时导致 OutOfMemoryError

Java - 是否可以在 JMenuBar 的最右侧添加 JMenu?

java - 如何让 system.out.println() 在 hadoop 中工作

java - 使用 Webdriver 的 Eclipse for Java 中的字符编码问题

Java 音频比较

java - 为什么我的 IDE 无法识别我认为已在 JSP 中正确导入的类型?

java.lang.NullPointerException : Attempt to invoke virtual method 'java.lang.String com.solaris.timster.model.Post.getTitle()' 异常

java - 在 Java 中标记中缀字符串

java - 如何在android中校准方向传感器