Bases de la programmation (trace de pseudo-code)
Le programme suivant soustrait l'un de l'autre les deux entiers a et b jusqu'à ce qu'ils soient égaux. Quelle est la valeur de k après son exécution ?
integer: a ← 48, b ← 18, k ← 0
while (a ≠ b)
if (a > b)
a ← a − b
else
b ← b − a
endif
k ← k + 1
endwhile
- A3
- B4
- C6
Afficher la réponse et l'explication
Réponse : B. 4
C'est la forme par soustractions de l'algorithme d'Euclide : on soustrait la plus petite valeur de la plus grande jusqu'à ce que les deux soient égales. (a, b) évolue ainsi : (48, 18) → (30, 18) → (12, 18) → (12, 6) → (6, 6), soit quatre soustractions, donc k = 4. La valeur finale a = b = 6 est le plus grand commun diviseur. L'algorithme d'Euclide avec le reste (mod) ne demande que trois étapes : 48 mod 18 = 12, 18 mod 12 = 6, 12 mod 6 = 0.
Continuer : 9 autres questions sur Bases de la programmation (trace de pseudo-code)