Basis van programmeren (pseudocode traceren)
Wat is de retourwaarde als de volgende functie fib wordt aangeroepen als fib(10)?
○integer: fib(integer: n)
integer: a ← 0, b ← 1, t
for (i from 1 to n step 1)
t ← a + b
a ← b
b ← t
endfor
return a
- A34
- B55
- C89
Antwoord en toelichting tonen
Antwoord: B. 55
Elke doorgang schuift (a, b) één paar opeenvolgende Fibonaccigetallen op: (0, 1) → (1, 1) → (1, 2) → (2, 3) → (3, 5) → (5, 8) → (8, 13) → (13, 21) → (21, 34) → (34, 55) → (55, 89). Na 10 doorgangen geeft de functie a = 55 terug. Na de i-de doorgang is a het i-de Fibonaccigetal. Een naïeve recursieve versie berekent dezelfde waarden vele malen, maar deze versie heeft maar n doorgangen nodig.
Verder: nog 9 vragen over Basis van programmeren (pseudocode traceren)