我是java新手,并试图自己学习。我来自C ++的背景。任何帮助将非常感激。 FibonacciSeq()在我的主要部分没有被调用,我不确定为什么。我让方法接受斐波那契序列中的起始整数(0),并从那里递归填充每个值的向量。当向量具有9个元素时,该函数应该结束。
public class Fibonacci
{
static Scanner input = new Scanner(System.in);
static Vector<Integer> fibonacciVect = new Vector<Integer>(0);
static int second;
static int newFirst;
static int fibIn = 0;
public static void main(String[] args)
{
System.out.print("Here comes the Fibonacci, watch out!");
fibonacciSeq(fibIn);
System.out.print("Values in Fibonacci Vector:");
for (int i = 0; i < fibonacciVect.size(); i++)
{
System.out.print(fibonacciVect.elementAt(i));
}
System.exit(0);
}
public static void fibonacciSeq(int first)
{
if (first == 0)
{
second = 1;
fibonacciVect.addElement(0);
fibonacciVect.addElement(1);
newFirst = first + second;
fibonacciSeq(newFirst);
}
if (fibonacciVect.size() == 9)
{
System.exit(0);
}
else
{
newFirst = first + second;
fibonacciVect.addElement(newFirst);
second = first;
fibonacciSeq(newFirst);
}
}
}
答案 0 :(得分:2)
作为初学者,您可以使用return
替换System.exit(0)if (fibonacciVect.size() == 9)
{
return;
}
另外,请删除其他System.exit(0)。 您的代码现在应该可以使用了。
答案 1 :(得分:1)
因为您在到达第9次递归时编写了System.Exit()。 这导致你的程序完成。您可以改用return语句。