import java.util.Scanner;
public class Fibonacci
{
public static void main(String[] args)
{
int count;
Scanner in = new Scanner(System.in);
System.out.println("Please enter number");
count = in.nextInt();
int[] fib = new int [count];
fib[0] = 1;
fib[1] = 1;
for (int i=2; i<count; i++)
{
fib[i] = fib[i-1] + fib[i-2];
}
for(int i=0; i<count; i++)
{
System.out.print(fib[i] + " ");
}
}
}
这是我非常简单的 Fib 程序,我不明白的是为什么它总是停止一个数字。例如:
运行:请输入数字 6 1 1 2 3 5 8 BUILD SUCCESSFUL (总时间: 5 秒)
运行:请输入数字 7 1 1 2 3 5 8 13 BUILD SUCCESSFUL(总计 时间:5秒)
我认为在我的 FOR 循环中它应该是“(int i=2; i <= count;”
但是当我在两者中输入大于或等于,或者在 FOR 循环中输入时,它会给我一个错误
有什么建议吗?我知道这很容易被我忽略
最佳答案
您的代码给出了正确的输出。但如果您还需要一个元素,请尝试使用 count + 1 初始化数组,然后让循环运行 i <= count
public static void main(String[] args) {
int count;
Scanner in = new Scanner(System.in);
System.out.println("Please enter number");
count = in.nextInt();
int[] fib = new int [count+1];
fib[0] = 1;
fib[1] = 1;
for (int i=2; i <= count; i++){
fib[i] = fib[i-1] + fib[i-2];
}
for(int i=0; i <= count; i++){
System.out.print(fib[i] + " ");
}
}
}
关于java - 简单的Java斐波那契代码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18709483/