找到将两个非常大的整数的总和除以相等块的步骤

Find step to divide sum of two very big ints on equal chunks

我有两个限制 - startend 是长值。我需要找到 step 以在相等的块上划分 startend 之间的距离。

所以公式实际上如下:

(end - start)/1000

其中 1000 是块的数量。当开始是 Long.MIN_VALUE 或接近它并且结束是 Long.MAX_VALUE.

时,问题就来了

谢谢

您可以改用 BigInteger

BigInteger bigStart = BigInteger.valueOf(start);
BigInteger bigEnd = BigInteger.valueOf(end);
BigInteger bigDiv = BigInteger.valueOf(1000);

BigInteger step = bigEnd.subtract(bigStart).divide(bigDiv);