# arrêt de la récursivité si solution trouvée pour plaque dans plaques_restantes faire si plaque == cible alors afficher "Solution" sortir # en algorithmique les éléments d'un container débutent à l'indice 1 # on tente de résoudre récursivement le problème en essayant tous # les calculs possibles, il faut que le résultat d'une opération # reste dans l'intervalle [1, 999] pour i dans [1 : taille(plaques_restantes)] faire pour j dans [1 : taille(plaques_restantes) ] faire si i != j alors a = plaques_restantes[i] b = plaques_restantes[j] créer une liste plaques_a_garder qui est une copie de plaques_restantes sans les éléments a et b si a + b < 1000 alors # le premier + représente la concaténation de liste # le second + représente l'addition resoudre( plaques_a_garder + [ (a+b) ], cible) si a - b > 0 alors resoudre( plaques_a_garder + [ (a-b) ], cible) si a * b < 1000 alors resoudre( plaques_a_garder + [ (a*b) ], cible) si (b > 1) et (a est divisible par b) == 0 alors resoudre( plaques_a_garder + [ (a/b) ], cible)