我正在尝试将整个斐波纳契序列打印到给定的位置。因此,用户将决定他们想要查看的斐波那契序列的数量(最多16次重复),并且它将打印整个序列。
我当前的代码仅在您选择的地点的序列中打印数字。 例如:4打印2而不是0 1 1 2.
public int Fibonacci(int number){
if(number == 1 || number == 2){
return 1;
}
int fib1=1, fib2=1, fibonacci=1;
for(int count= 3; count<= number; count++){
fibonacci = fib1 + fib2;
fib1 = fib2;
fib2 = fibonacci;
}
return fibonacci;
}
这是我的主要方法:
import java.util.Scanner;
public class FibonacciPrinter
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Enter an integer: ");
int input = in.nextInt();
FibonacciGenerator newNumber = new FibonacciGenerator();
for(int fibCount = 0; fibCount < input; fibCount++)
{
System.out.println(newNumber.Fibonacci(input));
}
}
}
答案 0 :(得分:3)
我想在这里,
for(int fibCount = 0; fibCount < input; fibCount++)
{
System.out.println(newNumber.Fibonacci(input));
}
你几乎肯定想要,
for(int fibCount = 0; fibCount < input; fibCount++)
{
System.out.println(newNumber.Fibonacci(fibCount)); // <-- fibCount not input
}
您需要更新方法以处理零情况,例如
public int Fibonacci(int number) {
if (number == 0) return 0;
// ...
}
并且在Java中,约定将Fibonacci
命名为fibonacci
,因为方法名称是驼峰式的,以小写字母开头(类按照惯例以大写字母开头)。