BigInteger 的 Java 解决方法

标签 java biginteger substitution

我正在研究一个场景,其中我必须在 Java 中实现 BODMAS,并且操作数可以有多达 1000 个数字。所以我选择通过以下方式实现它 - 我将中缀表达式(要实现 BODMAS 的表达式)转换为后缀 然后我通过解析它所具有的每个 BigInteger 来评估后缀表达式。 我的实现取得了成功。

现在我知道我不能使用 BigInteger,只能使用 int、string 等基本数据类型。

我一直在思考如何做到这一点,坦白说,还没有取得任何重大进展。

有关如何使用基本数据类型实现 BigInteger 的任何帮助或建议都会有很大帮助。

最佳答案

实现大整数的一种直接方法是将它们存储为十进制数字数组,例如。第1234章 1234

int[] bignum = new int[] {1, 2, 3, 4};

您需要实现普通加法、减法、乘法、除法以及您需要的任何其他操作。

您可能会发现“反转”存储数字可能更容易,因此将 1234 存储为:

int[] bignum = new int[] {4, 3, 2, 1};

更高级的实现将使用基数 2^32 或比基数 10 大得多的值。

关于BigInteger 的 Java 解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2022253/

相关文章:

mysql - Rails - MySQL 自动递增 id 列类型更改

java - 如何列出一个计数的数字?

image - 将 sphinx 指向构建目录中的图像

java - 如何判断 Hibernate 实体是否为只读

java - 在运行时更新 Java 代码

java - 通过 Spring Batch 部分读取和写入数据 - OutOfMemoryError : GC overhead limit exceeded

java - Java分割后修改bigInteger

Python将 "met conditional value"移到循环之外

regex - 在 Perl 代码中改进(优化)现有字符串替换的任何建议?

java - 检查类型后将父对象作为子对象传递