java计算任意指数的幂(负或正)
我想计算结果,给定任何指数(负或正)和整数类型的基数。我正在使用递归:
public static double hoch(double basis, int exponent) {
if (exponent > 0) {
return (basis * hoch(basis, exponent - 1));
} else if (exponent < 0) {
return ((1 / (basis * hoch(basis, exponent + 1))));
} else {
return 1;
}
}
如果指数为负,则返回1.0,但这是错误的。例如,hoch(2,-2)应为0.25。有什么想法吗
# 1 楼答案
将底座提升至pos或neg底座的工作代码:
# 2 楼答案
应该是
# 3 楼答案
你的括号用错了。您希望乘以递归调用的结果,而不是除以它;你希望你乘以的东西是
1/basis
(去掉一个负指数)# 4 楼答案
用hoch(2,-2)你可以计算
# 5 楼答案
虽然更有效的(递归)解决方案是