递归指数法

新手上路,请多包涵
public static int exponent(int baseNum) {
    int temp = baseNum *= baseNum;

        return temp * exponent(baseNum);
}

现在,如果我调试上面的方法,它会 n * n 变成无穷大,所以它仍然有效,但我需要这个递归方法在 10 次后停止,因为我的导师要求我们找到给定 10 次方的指数。

该方法必须只有一个参数,下面是一些调用指数的例子:

                 System.out.println ("The power of 10 in " + n + " is " +
                    exponent(n));

所以输出应该是:

 The power of 10 in 2 is 1024

或者

The power of 10 in 5 is 9765625

原文由 Matt Andrzejczuk 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 501
2 个回答

创建一个辅助方法来执行递归。它应该有两个参数:基数和指数。用指数值 10 调用它,并用 (exponent-1) 递归。基本情况是 exponent == 0 ,在这种情况下它应该返回 1。(您也可以使用 exponent == 1 作为基本情况,在这种情况下它应该返回基数。)

原文由 Ted Hopp 发布,翻译遵循 CC BY-SA 3.0 许可协议

做类似的事情

public static int exp(int pow, int num) {
    if (pow < 1)
        return 1;
    else
        return num * exp(pow-1, num) ;
}

public static void main (String [] args) {
    System.out.println (exp (10, 5));
}

并且不要忘记告诉何时停止递归并从堆栈中弹出值的基本情况(即条件)。

原文由 mu_sa 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题