Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的Fibonacci算法_Java_Fibonacci - Fatal编程技术网

Java中的Fibonacci算法

Java中的Fibonacci算法,java,fibonacci,Java,Fibonacci,我正在尝试解决一个算法类的家庭作业问题,我一直在为下面编写的代码获取一个越界索引数组。我一直尝试在Python中使用它,因为我对它非常熟悉,但我似乎也遇到了类似的例外。谁能给我一个提示,我在这件事上哪里出了问题 公共类Fibonacci1{ 公共静态长F(int N){ 长a[]=新长[100]; [0]=0;/*设置序列中的前两位数字*/ a[1]=1; 如果(N当N==99时,在方法F中执行N++,则调用returna[N],这意味着returna[100]从F函数中删除N++语句。代码需要

我正在尝试解决一个算法类的家庭作业问题,我一直在为下面编写的代码获取一个越界索引数组。我一直尝试在Python中使用它,因为我对它非常熟悉,但我似乎也遇到了类似的例外。谁能给我一个提示,我在这件事上哪里出了问题

公共类Fibonacci1{
公共静态长F(int N){
长a[]=新长[100];
[0]=0;/*设置序列中的前两位数字*/
a[1]=1;

如果(N当
N==99
时,在方法F中执行
N++
,则调用return
a[N]
,这意味着return
a[100]

从F函数中删除N++语句。

代码需要更改一点。由于数组是一个局部变量,应该是一个静态变量,因此无法打印出正确的序列。此外,还应删除N++语句。下面的代码并不漂亮,但可以工作

public class Fibonacci1 {
    static long a[] = new long[100];

    public static long F(int N) {
        a[0] = 0; /* sets up first 2 digits in the sequence */
        a[1] = 1;
        if (N < 2) {
            return N;
        }
        a[N] = a[N - 1] + a[N - 2]; /* appends F num for next number in the list */
        return a[N]; /* should return the last number */
    }

    public static void main(String[] args) {
        for (int N = 0; N < 100; N++)
            System.out.println(N + " " + F(N));
        }
}
公共类Fibonacci1{
静态长a[]=新长[100];
公共静态长F(int N){
[0]=0;/*设置序列中的前两位数字*/
a[1]=1;
if(N<2){
返回N;
}
a[N]=a[N-1]+a[N-2];/*为列表中的下一个数字追加F num*/
返回[N];/*应返回最后一个数字*/
}
公共静态void main(字符串[]args){
对于(int N=0;N<100;N++)
System.out.println(N+“”+F(N));
}
}

算法是错误的。你最好在谷歌上搜索并找到正确的算法one@gefei,我也要指出同样的问题,但是你更快了!众多资源之一:你不需要数组。你可以迭代计算它。更清楚地说,一个可以容纳100个元素的数组的索引是0到99,所以索引100超出了范围。是的,我做到了t、 很抱歉用一个小谎问题来打扰SO社区,在我问任何人之前,我真的试着花一些时间在这个问题上。我知道程序员讨厌基本的问题,尤其是小谎!没问题。我们都在看代码之前就已经在那里了。祝你好运。