我正在研究一个场景,其中我必须在 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/