【发布时间】:2014-09-14 16:44:56
【问题描述】:
所以我正在制作的递归函数需要 2 个变量(x 和 y)并计算 x 的 y 的幂。就像Math.pow 函数一样。 y 是正数,所以我不需要担心负指数。
这是我的代码:
public static int power(int x, int y) {
if (y == 0)
return 1;
else
return x * power(x, y-1);
}
起初它似乎工作正常,但后来我尝试输入power(50,6)。我得到了-1554869184。
显然这是错误的,因为正确的答案不可能是否定的。
【问题讨论】:
-
尝试使用 public long power(int x, int y) 代替
-
可能的最大整数值是多少? 50^6 的值是多少? en.wikipedia.org/wiki/Integer_overflow
-
成功了,谢谢!但为什么:D
-
哦,我明白了,非常感谢。
-
@niana 因为蚂蚁不能吃大象 :-)
标签: java recursion int long-integer