Java 不使用BigNumber的功率计算
如何解决以下问题Java 不使用BigNumber的功率计算,java,Java,如何解决以下问题 计算不带大整数或大数字的X^Y 需要打印所有数字,例如2^64=18446744073709551616 我已经用Java编写了代码,但是没有得到更高数字的确切结果 我的代码: public class Calculation { ArrayList<Double> c = new ArrayList<Double>(); double a = 2; double b = 64; double[] d = new dou
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();
}
}
公共类计算{
ArrayList c=新的ArrayList();
双a=2;
双b=64;
double[]d=新的double[5];
公共计算()
{
d[0]=java.lang.Math.pow(a,b);
System.out.println(d[0]);
}
公共静态void main(字符串[]args)
{
计算=新计算();
calculation.powerCalculation();
}
}
双精度的尾数不够长,无法容纳2^64
的数字。
简单但困难的方法是使用
ArrayList<Byte> a;
arraylista;
(其中
a.get(x)
表示位置10^x
的值)并重写你在学校学到的加法、乘法和乘幂算法 您编写的代码是什么?您可以使用数组表示法来存储大数字。例如,1个数组位置中的1个数字<代码>a={1、2、3、3、4、5 5}代码>a={{1、2、3、3、3、3、4、3、5、5 5 5 5}{1、1、1、2、2、3、3、3、3、3、3、4、5、5 5 5}代码>码>公开类公开类公开类公开类公开类公开类公开类公开类公开类公开类公开类公开类公开类公开类公众类公开类公开类公开类公众类公众类公众类甲a=1、1、1、1、1、1、1、1、1、1、1、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、3、3、3、3、3、3、3、3“;”;public void calc(){c=java.lang.Math.pow(a,b);e=formatter.format(c);System.out.println(e);}public static void main(字符串[]args){cala=new-Cal();a.calc();}}说出来Mike。你可以自己看到它不清晰。把它编辑到你的问题中。X
可以有什么值?有还是总是2
?