Я смотрю на этот код и не могу понять, что с ним не так, может быть, свежий взгляд поможет.
public static BigInteger powerOfBigInteger (BigInteger base, BigInteger power){
if (power == BigInteger.valueOf(0)){
return BigInteger.valueOf(1);
}
if (power == BigInteger.valueOf(1)){
return base;
}
BigInteger x = BigInteger.valueOf(1);
while (x != power ){
base.multiply(base);
x.add(BigInteger.valueOf(1));
System.out.println(x + " " + power);
return base;
}
return base;
Я запускаю это, и, по-видимому, x никогда не равняется мощности. Любая помощь приветствуется.
BigInteger
уже имеет методpow(int)
, и любая мощность, слишком большая, чтобы поместиться вint
, все равно приведет к нехватке памяти. - person Louis Wasserman   schedule 14.06.2012