java - 递归斐波那契数列打印列表

标签 java recursion computer-science fibonacci

我有以下递归斐波那契数列的代码

    if (term < 2){
        System.out.print("1 ");
        return 1;
    } 
        int results = fibonacci(term - 1) + fibonacci(term - 2);
        System.out.print(results + " ");

        return results;

我得到的输出是

斐波那契数列中你最喜欢什么项:4

1 1 2 1 3 1 1 2 5 第 4 个是 5

如何打印出来

1 1 2 3 第 4 个是 5

最佳答案

使用尾递归。

  public static void main(String[] args) {

    System.out.print("The 10th is: " + fibonnaci(10));
  }

  public static int fibonnaci(int number) {
     return fibonnaciHelper(number, 1, 1);
  }

  public static int fibonnaciHelper(int term, int lower, int higher) {
      if (term < 2){
          return higher;

      } 

      System.out.print(higher + " ");
      int results = fibonnaciHelper(term - 1, higher, higher + lower);
      return results;
  }

关于java - 递归斐波那契数列打印列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16202346/

相关文章:

java - 在 Maven Central 上查找 Artifact 的所有直接依赖项

recursion - 为什么当我使用 printf 程序时不发送字符串到输出,但当我使用 println 时却发送字符串?

c++ - C++中重载递归函数的模板推导规则

java - 如何在 LinkedList 节点中保留两条信息?

c - 检查信号量值时是什么阻止了竞争条件?

algorithm - 解决重复 : Substitution method

java - 我们可以在eclipse中从我们的项目中调用另一个项目java类吗

java - 如何使用java web applet访问系统文件?

java - Android 将图像异步加载到 ListView ?

嵌套哈希键的 Ruby 点表示法