我的Java教授希望我编写一个程序,其中用户给出x的值和y的值,然后计算x ^ y的值(x到y的幂),并将其打印到控制台。我不允许使用pow()方法。 x和y是int值。
我的代码,在用户给出x和y值之后:
BigInteger solution = BigInteger.valueOf(0);
for (int i=0; i<y; i++) {
solution = solution.add(BigInteger.valueOf((x+solution.intValue())*x));
}
但它永远不会正常运作。它给出的答案通常是等待的。如果有人有代码可以解决这个问题,那么非常感谢您的帮助!
答案 0 :(得分:2)
你只需要将x乘以x倍。
BigInteger solution;
if (y == 0) {
solution = BigInteger.valueOf(1);
}
else if (y > 0) {
solution = BigInteger.valueOf(x);
for (int i=0; i<y-1; i++) {
solution = solution.multiply(BigInteger.valueOf(x));
}
}
else {
// Negative powers left as exercise to the reader
}
答案 1 :(得分:0)
您可以这样做:
public void function(int x, int y){
BigInteger sol = BigInteger.ONE;
for (int i = 0; i < x; i++) {
sol = sol.multiply(BigInteger.valueOf(y));
}
System.out.println(sol);
}