在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
具有值k
, num
保持第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; } }