# Tabellierung von Fibonacci-Zahlen



## Bierjunkie (9. Dez 2011)

Die Aufgabe :



> Schreiben Sie ein Programm zur Tabellierung der ersten 20 Fibonacci–Zahlen. In Ihrem Programm soll ein
> Feld fib; so mit Werten belegt werden, dass fib_ = f ib(i). Anschließend sollen die Werte in fib ausgegeben werden.
> _


_


Erläuterung mit Hilfe von Wikipedia:

Fibonacci-Folge Wikipedia





		Java:In die Zwischenablage kopieren


package fibonacci;

import java.util.Arrays;

public class Fib {
	public static int fib(int n){
		if(n == 0){
			return 0;
		}if(n == 1){
			return 1;
		}else{
			return fib(n-2)+ fib(n-1);
	}
}
		public static void main(String args[]){
			int [] fibo = new int [20];
			fibo [0] = 0;
			fibo [1] = 1;
			for(int i =2;i<fibo.length;i++){
			fibo [i] = fibo [i-1]+ fibo [i-2];
			
			}
			System.out.println("Das Ergebnis lautet: "  +fibo);
			
		}
	}



Ausgabe:



		Java:In die Zwischenablage kopieren


Das Ergebnis lautet: [I@2e6e1408



So jetzt zur meiner Frage:

1.Sind Fehler enthalten, die korrigiert werden können?
2.Wie gebe ich das Ergebnis passend aus?_


----------



## pro2 (9. Dez 2011)

Du musst alle Zahlen aus dem Array einzeln ausgeben, das ist dein Fehler bisher. Das machst du genauso mit einer for Schleife, wie du es vorher auch gemacht hast. 
	
	
	
	





```
for(...) ...println(fibo[i]);
```


----------



## Bierjunkie (9. Dez 2011)

Hab es mit fibo_ zu ausgeben versucht,doch es kam eine Fehlermeldung. Sicher wegen der for-Schleife.
Wenn ich jetzt eine weitere for-Schleife hinzufügen soll, wie sieht diese aus?_


----------



## Fab1 (9. Dez 2011)

mit einer 2. Schleife sollte es auf alle Fälle gehen.

hier der Code:

Wichtig ist dabei, das du die Länge des Arrays-1 nimmst, da es sich ja um einen Index handelt der bei 0 beginnt und bei der Länge des Arrays-1 aufhört. 


```
package fibonacci;
import java.util.Arrays;
 
public class Fib{
    public static int fib(int n){
        if(n == 0){
            return 0;
        }if(n == 1){
            return 1;
        }else{
            return fib(n-2)+ fib(n-1);
    }
}
        public static void main(String args[]){
            int [] fibo = new int [20];
            fibo [0] = 0;
            fibo [1] = 1;
            for(int i =2;i<fibo.length;i++){
            fibo [i] = fibo [i-1]+ fibo [i-2];
            
            }
            
            for(int i = 0; i<=fibo.length-1; i++){
            	System.out.println("Das Ergebnis lautet: "  +fibo[i]);
            }
            
            
        }
    }
```


----------



## pro2 (9. Dez 2011)

Oder einfach so 


```
for(int i = 0; i < fibo.length; i++){
    System.out.println("Das Ergebnis lautet: "  + fibo[i]);
}
```


----------



## Bierjunkie (9. Dez 2011)

Habs getestet - funktioniert einwandfrei!


```
Das Ergebnis lautet: 0
Das Ergebnis lautet: 1
Das Ergebnis lautet: 1
Das Ergebnis lautet: 2
Das Ergebnis lautet: 3
Das Ergebnis lautet: 5
Das Ergebnis lautet: 8
Das Ergebnis lautet: 13
Das Ergebnis lautet: 21
Das Ergebnis lautet: 34
Das Ergebnis lautet: 55
Das Ergebnis lautet: 89
Das Ergebnis lautet: 144
Das Ergebnis lautet: 233
Das Ergebnis lautet: 377
Das Ergebnis lautet: 610
Das Ergebnis lautet: 987
Das Ergebnis lautet: 1597
Das Ergebnis lautet: 2584
Das Ergebnis lautet: 4181
```


Hoffe mal das es korrekt ist ! 


Dankeschön!


----------

