S
Steffen777
Gast
Hallo liebe Java-Gemeinde!
Ich habe hier ein kleines Programm geschrieben, verstehe aber nicht so recht die Werte die es ausspuckt!
Wer kann mir erläutern, wie das Programm abgearbeitet wird?
Ich hatte mehrere Stunden nachgedacht, irgendwo scheint ein denkfehler zu sein.
Mein terminal spuckt mir die Werte:
0
1
1
2
3
5
aus, warum komme ich auf dem Papier nicht auf die gleichen Werte?
Ich glaube mein Denkfehler liegt an der Stelle f(k-1)+f(k-2). Was ist bei diesem Programm zu beachten um auf die
richtigen Werte zu kommen?
Grüße,
Steffen
Ich habe hier ein kleines Programm geschrieben, verstehe aber nicht so recht die Werte die es ausspuckt!
Wer kann mir erläutern, wie das Programm abgearbeitet wird?
Ich hatte mehrere Stunden nachgedacht, irgendwo scheint ein denkfehler zu sein.
Code:
class Test {
public static int f(int k) {
if(k==0)return 0;
if(k==1)return 1;
else return f(k-1)+f(k-2);
}
public static void main(String args[]) {
int i,n;
n=Integer.parseInt(args[0]);
for(i=0;i<=n;i++)
System.out.println(f(i));
}
}
Mein terminal spuckt mir die Werte:
0
1
1
2
3
5
aus, warum komme ich auf dem Papier nicht auf die gleichen Werte?
Ich glaube mein Denkfehler liegt an der Stelle f(k-1)+f(k-2). Was ist bei diesem Programm zu beachten um auf die
richtigen Werte zu kommen?
Grüße,
Steffen