Tabellierung von Fibonacci-Zahlen

Bierjunkie

Mitglied
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:
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:
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?
 
Zuletzt bearbeitet:

pro2

Bekanntes Mitglied
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.
Code:
for(...) ...println(fibo[i]);
 

Bierjunkie

Mitglied
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

Top Contributor
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.

Java:
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

Bekanntes Mitglied
Oder einfach so :p

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

Bierjunkie

Mitglied
Habs getestet - funktioniert einwandfrei!

Java:
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!
 

Neue Themen


Oben