int fiboRek(int n) {
switch (n) {
case 0:
return 0;
case 1:
return 1;
default:
return fiboRek(n-1) + fiboRek(n-2);
}
}
fiboRec(4) = fiboRek(3) + fiboRek(2)
= (fiboRek(2) + fiboRek(1)) + (fiboRek(1) + fiboRek(0))
= ((fiboRek(1) + fiboRek(0)) + 1) + (1 + 0)
= ((1 + 0) + 1) + 1
= (1 + 1) + 1
= 2 + 1
= 3
int fiboIt(int n) {
switch (n) {
case 0:
return 0;
case 1:
return 1;
}
int letzter = 1;
int vorletzter = 0;
int neuer = 0;
for (i=2; i<=n; i++) {
neuer = letzter + vorletzter;
vorletzter = letzter;
letzter = neuer;
}
return neuer;
}
| vorletzter | letzter | neuer |
| 0 | 1 | 1 |
| 1 | 1 | 2 |
| 1 | 2 | 3 |
| 2 | 3 | 5 |