编写一个打印出n ^ 100的每个数字的函数

时间:2014-09-16 19:51:47

标签: java integer-overflow

我被要求编写一个带有整数n的Java函数,并打印出值n^100

我不知道如何处理这个问题。我知道通过常规手段它会随着n的增长而溢出。答案如:5.32 x 10^20是不可接受的。它必须是每个数字。

所以,例如:

public void byHundred(int n) {
  result = //some computation that yields the string
  System.out.println(result);
}

因此,byHundred(23)打印出"14886191506363039393791556586559754231987119653801368686576988209222433278539331352152390143277346804233476592179447310859520222529876001"

1 个答案:

答案 0 :(得分:6)

你可以使用BigInteger之类的东西,

public static void byHundred(int n) {
    BigInteger bi = BigInteger.valueOf(n);
    String result = bi.pow(100).toString();
    System.out.println(result);
}

public static void main(String[] args) {
    byHundred(23);
}

输出为14886191506363039393791556586559754231987119653801368686576988209222433278539331352152390143277346804233476592179447310859520222529876001(根据要求提供)。