java - 递归问题 - 这个解决方案是否正确,是否有更简单的解决方案?

标签 java recursion

我是递归的新手,我发现了以下 Java 问题:
编写一个获取整数 n 的函数,并打印数字 1!,2!,3!,...,n!。
这是我所做的,我想知道这是否是最简单的解决方案(我不确定,因为我使用“for”循环来完成)。

public static void Print(int n) {
  if (n == 0) {
    System.out.print("1");
  } else {
    int temp = 1;
    for (int i = 1; i <= n, i++) {
      temp = temp * i;
    }
    Print(n-1);
    System.out.print(temp);
  }
}

顺便说一句,之前的练习是使用递归编写一个函数,该函数获取整数 n 并返回 n!。你认为我需要在这里使用它并打印它而不是计算温度(n!)并打印它吗? 谢谢!

最佳答案

这是一个简单的递归解决方案:

  public static long factorial(long n) {
    if(n == 0 || n == 1) {
      System.out.print(1 + " ");
      return 1;
    }

    long result = n * factorial(n - 1);
    System.out.print(result + " ");
    return result;
  }

关于java - 递归问题 - 这个解决方案是否正确,是否有更简单的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57629802/

相关文章:

java - 将 clojure/scala repl 附加到正在运行的 JVM

java - 扩展 LinkedHashMap 时出错

perl - 如何从目录树在 Perl 中构建层次哈希

java - 在 Java 中实现快速排序

Java:Heap数据结构的递归reheapUp(bubbleUp)方法

java - 使用 Jython 在 Spring Boot 应用程序中包含 Python 脚本失败 - 找不到模块

java - 获取客户端IP地址

java - SSL 握手失败 - Java 1.8

c# - C# 从上到下逐行递归遍历树

php - MySQL 最佳实践 : SELECT children recursive as performant as possible?