如何在Java上处理非常大的数字?

问题描述 投票:0回答:1

我正在研究一个从文件中读取一些数字的程序。使用这些数字,程序需要使用我稍后提供的公式来计算结果数字。

文件格式如下:

3 //number of tests
28347823734 /*argument 1 of test 1*/ 78353845787 /*argument 2 of test 1*/
63747289347 /*argument 1 of test 2*/ 242489983758 /*argument 2 of test 2*/
75472934872 /*argument 1 of test 3*/ 627364829374 /*argument 2 of test 3*/

解析每个测试的每个值之后,必须计算以获得结果的公式如下:

result = argument1 * 8 * argument2

稍后,我必须将结果与星期几相关联。例如,如果结果为2,则日期为星期三,如果结果为8,则日期为星期二。为了解决这个问题,我执行以下方法。 (结果需要除以8)

String str = calculateDay(result/8);

然后,我知道在星期几创建以下方法:

private String calculateDay (long n) {

        String days = new String[]{"MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"};
        int d = 0;

        for (long i=1; i<=n; i++) {
            if (d==6) {
                d=0;
                continue;
            }

            d++;
        }

        return days[d];
    }

这里的问题是,对于具有100个不同测试的文本文件,由于数字确实很大,要完全执行将花费很长时间,所以...我该如何处理?

java long-integer
1个回答
2
投票
  1. 大数字:这些数字看起来很适合long值。但是如果长不够大,可以使用java.Math.BigInteger

  2. 计算日期:此计算仅为numDays%daysOfTheWeek。如果您需要使用BigInteger,则可以使用mod(...)方法

© www.soinside.com 2019 - 2024. All rights reserved.