我不知道该怎么办。我的教授希望我们使用递归创建斐波那契数列。不允许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/