Étape 1
Analysons le déroulement de la boucle pour chacun des éléments connus de la liste $L = [4, 7, k, 2, 8]$ :
Étape 2
Pour $x = 4$ : comme $4 \le 5$, l'instruction du bloc else est exécutée. La variable $s$ augmente de $4 + 2 = 6$.
Étape 3
Pour $x = 7$ : comme $7 > 5$, l'instruction du bloc if est exécutée. La variable $s$ augmente de $3 \times 7 = 21$.
Étape 4
Pour $x = 2$ : comme $2 \le 5$, l'instruction du bloc else est exécutée. La variable $s$ augmente de $2 + 2 = 4$.
Étape 5
Pour $x = 8$ : comme $8 > 5$, l'instruction du bloc if est exécutée. La variable $s$ augmente de $3 \times 8 = 24$.
Étape 6
Calculons le cumul apporté par l'ensemble des éléments connus :
Étape 7
$$S_{\text{connus}} = 6 + 21 + 4 + 24 = 55$$
Étape 8
La fonction renvoie au total $82$. La contribution de l'élément $k$ correspond donc à :
Étape 9
$$82 - 55 = 27$$
Étape 10
Étudions maintenant les deux cas possibles pour la valeur de $k$ :
Étape 11
Premier cas : si $k > 5$, le bloc if s'applique et ajoute $3 \times k$ à la variable $s$. Ce qui donne l'équation $3k = 27$, soit $k = 9$. Comme $9 > 5$, cette valeur est bien valide.
Étape 12
Second cas : si $k \le 5$, le bloc else s'applique et ajoute $k + 2$ à la variable $s$. Ce qui donne l'équation $k + 2 = 27$, soit $k = 25$. Or la condition $25 \le 5$ est fausse, donc ce cas est impossible.
Étape 13
La seule valeur entière possible est donc $k = 9$.
Méthode clé
Isoler la valeur ajoutée par l'élément inconnu en calculant d'abord la contribution des éléments connus, puis tester les deux branches de l'alternative.
Piège à éviter
Oublier de vérifier si la valeur de $k$ trouvée respecte la condition du test ($k > 5$ ou $k \le 5$).