java - 简单的Java斐波那契代码问题

标签 java

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/

相关文章:

java - 从一台服务器读取放置在另一台服务器上的 pdf 文件

java - iText 字体策略

java - 如何让 Resteasy MultipartFormDataInput 使用 UTF-8 解码字符串?

Java 加载屏幕不显示任何 GUI 功能

java.nio.file.WatchEvent 只给我相对路径。如何获取修改后文件的绝对路径?

java - 当 String 是有效的 char 时将 String 转换为 char

java - 如何在 Java 中复制并用字符数组替换现有字符串

java - Apache 的 Java XMLRPC 库的问题

java - Andengine onAreaTouched TouchEvent 不起作用 - ACTION_OUTSIDE 和 ACTION_CANCEL

java - 在 RecyclerView 中扩展项目时使用 TransitionManager 和 ChangeBounds 与layout_height : match_constraint 结合使用会产生奇怪的视觉效果