我正在尝试制作一个简单的计算器来练习递归。这是我的代码,我收到堆栈溢出错误。我不一定关心使这项工作有效的代码,因为我想自己弄清楚,但我不确定为什么会出现堆栈溢出错误。在我的 main 中声明:int base=3,exponent=4;我的指数方法:static int powerN(int base, int n) { if ( n == 0 ) return 0; return base * powerN (1, n-(n-1));}
1 回答
神不在的星期二
TA贡献1963条经验 获得超6个赞
我可以看到你至少有三个错误。x 0是一(不是零)。您应该处理 x 1(即 x)的情况。而且,当你递归时,你想要传递base
and n - 1
(就像你在 1 的幂上递归一样 - 它永远是 1)。喜欢,
static int powerN(int base, int n) {
if (n == 0) {
return 1;
} else if (n == 1) {
return base;
}
return base * powerN(base, n - 1);
}
添加回答
举报
0/150
提交
取消