在java中,我如何找到第n个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); } 

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

在您的代码中, num从第0 Fibonacci数开始, num1作为第1个。 所以要找到第n ,你必须迭代这个步骤n次:

 for (loop = 0; loop < n; loop ++) { fibonacci = num + num2; num = num2; num2 = fibonacci; } System.out.print(num); 

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

当循环计数器loop具有值knum保持第k Fibonacci数,而num2第(k + 1)

要找到第n个数字,我们需要知道斐波纳契数的长度。 您可以使用Java的Integer.toString(int)函数将int转换为字符串。 然后,使用该字符串可以确定转换后的斐波纳契数的长度。

编辑:删除代码b / c可能是hwk问题

 import java.util.*; public class fibonacci{ public static void main(String[]args){ Scanner input=new Scanner(System.in); String n=System.getProperty("line.separator"); int count=0,x=0,y=1,sum; System.out.println("Enter a number: "); int num=input.nextInt(); for(count=0;count<=num;count++){ System.out.print(" "+ x); sum=x+y; x=y; y=sum; } } } 
 import acm.program.*; public class FibonacciToN extends ConsoleProgram { public void run() { println("This program will display a table of Fibonacci numbers up to value n."); int n = readInt("Enter an integer for value n: "); int result = sequence(n); } private int sequence(int n) { int a = 0; int b = 1; while (a < n) { println(a); a = a + b; b = a - b; } return a; } }