Bases de la programmation (trace de pseudo-code)
Quelle est la valeur de retour de la fonction fib suivante appelée sous la forme 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
Afficher la réponse et l'explication
Réponse : B. 55
Chaque passage fait avancer (a, b) d'une paire de nombres de Fibonacci voisins : (0, 1) → (1, 1) → (1, 2) → (2, 3) → (3, 5) → (5, 8) → (8, 13) → (13, 21) → (21, 34) → (34, 55) → (55, 89). Après 10 passages, la fonction renvoie a = 55. Après le i-ème passage, a est le i-ème nombre de Fibonacci. Une implémentation naïve par récursion calcule plusieurs fois les mêmes valeurs, alors que celle-ci n'a besoin que de n passages.
Continuer : 9 autres questions sur Bases de la programmation (trace de pseudo-code)