2016-10-09 80 views
-2

我是Java新手,想努力学习最好的技术。我试图运行此代码,但遇到了一个错误。斐波那契数列中的错误

代码:

public class Fibonacci 
{ 

    public static void main(String[] args) 
    { 

     int[] numbers; 
     numbers[0]=0; 
     numbers[1]=1; 
     numbers = newint[20]; 
     System.out.println("\nFibonacci series:\n"); 
     System.out.println(numbers[0]); 
     for (int i =2; i<2; i++) 
     { 

      numbers[i]=numbers[i-2]+numbers[i-1]; 
      System.out.println(numbers[i]); 

     } 

    } 

} 

错误:

Fibonacci.java:10: error: cannot find symbol 
     numbers = newint[20]; 
       ^
    symbol: variable newint 
    location: class Fibonacci 
1 error 
+3

'newint [20]'它应该是'new int [20];'并且它应该在填充这个数组之前完成 – user902383

+0

for(int i = 2; i <2; i ++)'不会迭代。你的意思是“我<20”吗? ---另外,你不打印数字[1]。 – Andreas

+0

Stackoverflow不是为了教授绝对的基础知识。阅读一本书或者按照教程。 –

回答

2

你缺少new操作后的空白。此外,您还需要在阵列以前分配值初始化它,而不是之后:

int[] numbers = new int[20]; 
// Here -----------^ 
numbers[0] = 0; 
numbers[1] = 1; 
+0

感谢您的帮助! – Charlie

+0

所以,我做了你所说的,但是当我运行该程序时,唯一出现的数字是零。 – Charlie

+0

斐波纳契系列: 0 – Charlie

0

像评论已经说了,改变数组的声明,并调整上限为你的循环,以20:

public static void main(String[] args) { 

    int[] numbers = new int[20]; 
    numbers[0]=0; 
    numbers[1]=1; 
    System.out.println("\nFibonacci series:\n"); 
    System.out.println(numbers[0]); 
    for (int i = 2; i< 20; i++) { 
     numbers[i]=numbers[i-2]+numbers[i-1]; 
     System.out.println(numbers[i]); 

    } 
}