如何解决以下问题?
- 计算 X^Y,不带大整数或大数。
- 需要打印所有数字,例如 2^64 = 18446744073709551616。
我用 Java 编写了代码,但我没有得到更高位数的确切结果。
我的代码:
public class Calculation {
ArrayList<Double> c = new ArrayList<Double>();
double a = 2;
double b = 64;
double[] d = new double[5];
public void powerCalculation()
{
d[0] = java.lang.Math.pow(a, b);
System.out.println(d[0]);
}
public static void main(String[] args)
{
Calculation calculation = new Calculation();
calculation.powerCalculation();
}
}
双尾数不够
长,无法容纳2^64
的数字。简单但困难的方法是使用类似的东西
ArrayList<Byte> a;
(其中a.get(x)
表示位置10^x
的值)并重写您在学校学到的加法、乘法和幂的算法。