我不知道该怎么办。我的教授希望我们使用递归创建斐波那契数列。不允许for循环,而且我(是业余爱好者)不知道如何创建一个依次说6个数字的字符串。

他的指示如下:“使用递归,创建一个返回包含Fibonacci序列的String的方法。采用整数来确定应返回的序列值。”

到目前为止,这就是我所拥有的...

import java.util.*;

public class fibo {

  public final static int n = 0;
  public static String s = "";

  public static void main(String[] args) {

    Scanner scn = new Scanner (System.in);

    System.out.println("Please put in a number.");

    int n = scn.nextInt();

    s = Integer.toString(n);

    System.out.println(n+ ": " + fibonacci(n));
  }

  public static int fibonacci(int n) {

    if(n <= 1)
      return n;

    else
      return fibonacci(n - 1) + fibonacci(n - 2);
  }
}


除此之外,我觉得其中很多都是效率低下且凌乱的。有人可以真正向我解释并帮助我做什么吗?

最佳答案

看来您正在生成斐波那契数列中的第n个数字,在我看来,您需要存储所生成的所有值(而不仅仅是最后一个)并显示它们。

因此,完成分配后,您不仅需要显示f(n),还需要显示f(1), f(2), ..., f(n-1), f(n)

关于java - Java中的斐波那契递归-是否没有循环?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15450358/

10-12 04:51