java - 如何更正此代码以使用 java 计算 10 的阶乘

public class Main {

  public static int multiply(int z) {
      if(z > 0) {
          return z * multiply(z - 1);
      }else{
          return 0;
      }
  }

  public static void main(String[] args) {
    int answer = multiply(10);
    System.out.println(answer);
  }

}

我在运行此代码时遇到了一些问题,但是当我尝试使用附加功能时它确实有效

回答1

正如https://stackoverflow.com/questions/72293958/how-can-i-correct-this-code-to-compute-the-factorial-of-10-using-java/72293993#comment127720757_72293958 所述,只需在 if 语句中将 0 更改为 1 并在 else 语句中返回 1。这样,你就不会在最后乘以 0。

例如:

public static int multiply(int z) {
      if(z > 1) {
          return z * multiply(z - 1);
      }else{
          return 1;
      }
  }

相似文章

最新文章