尝试在 java 中使用递归创建指数计算器时出现堆栈溢出错误

我正在尝试制作一个简单的计算器来练习递归。这是我的代码,我收到堆栈溢出错误。我不一定关心使这项工作有效的代码,因为我想自己弄清楚,但我不确定为什么会出现堆栈溢出错误。


在我的 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));


}


慕码人8056858
浏览 99回答 1
1回答

神不在的星期二

我可以看到你至少有三个错误。x 0是一(不是零)。您应该处理 x 1(即 x)的情况。而且,当你递归时,你想要传递baseand 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);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java