在java中,我如何找到第n个Fibonacci数?

Cyd*_*rax 5 java loops for-loop fibonacci

确定Fibonacci序列很容易弄清楚:

int num = 0;
int num2 = 1;
int loop;
int fibonacci;
System.out.print(num2);
for (loop = 1; loop <= 10; loop ++)
{
    fibonacci = num + num2;
    num = num2;
    num2 = fibonacci;
    System.out.print(" " + fibonacci);
}
Run Code Online (Sandbox Code Playgroud)

我的问题在于试图精确定位指定N的值.如果我想在序列中找到第6个元素,即8,我将如何找到该数字,只有那个数字?

Dan*_*her 9

在你的代码,num开始为0 Fibonacci数,并num1为1 .所以要找到第n ,你必须迭代步骤n时间:

for (loop = 0; loop < n; loop ++)
{
    fibonacci = num + num2;
    num = num2;
    num2 = fibonacci;
}
System.out.print(num);
Run Code Online (Sandbox Code Playgroud)

并且只在你完成后打印它.

当循环计数器loop具有该值时k,num保持第k 斐波纳契数和num2第(k + 1).

  • 通常,第n个斐波那契数,`F(n)`如果你愿意,是`(p ^ n - (1-p)^ n)/ sqrt(5)```p =(1 + sqrt(5) ))/ 2`.所以`F(0)`,第零个斐波那契数是0. (3认同)