我需要专门使用for循环在斐波那契数列中找到第n个项。我试图这样做,以便main方法告诉generateFibonnaci方法它需要查找的第n个项,并将n分配为第二个for循环的极限,这将递归地找到第n个项,直到极限数n。例如,当输入为2时,计划让Fibonacci公式运行两次并返回1,但在这种情况下返回5。我怀疑问题出在for循环的参数之内,但我不确定。
class Fibonnaci
{
public static int generateFibonacci(int input)
{
int num1 = 0;
int num2 = 1;
int fibonacci = 0;
int n = 0;
for(int i = 0; i < input; i++)
{
n = input;
for(int j = 0; j < n; j++)
{
fibonacci = num1 + num2;
num1 = num2;
num2 = fibonacci;
}
}
return fibonacci;
}
public static void main(String [] args)
{
int [] inputs = {1, 2, 3, 4, 5, 6, 11, 16, 21, 31, 41, 46, 1, 1, 2, 11};
for(int i = 0; i < inputs.length; i++)
{
System.out.println(generateFibonacci(inputs[i]));
}
}
}
最佳答案
您必须更改for
循环。
for(int i = 0; i < input - 1; i++) {
fibonacci = num1 + num2;
num1 = num2;
num2 = fibonacci;
}
这样就足够了。