Le "nombre moyen" est plus grand que l'un des nombres, mais plus petit que l'autre nombre. Et il n'y a qu'un seul numéro intermédiaire. La façon la plus mécanique de résoudre ce serait de commencer
middleNumber a b c
| a < b && a > c = a
Vérifiez si a
est le nombre du milieu en étant inférieur à b
mais supérieur à c
.
Maintenant, si a
est le nombre moyen, mais il est en fait plus que b
et moins que c
? Il y a un autre gardien. Et si b
est le numéro du milieu? Il y a deux autres gardes. Que faire si c
est le numéro du milieu? Il y a 2 gardes de plus, pour un total de 6 cas différents.
(BTW, l'expression | a < b && a > c = a
est appelée garde. Si vous ne disposez pas d'une prise ferme et de ce que les gardes sont, je vous recommande LYAH # Guards)
Bien sûr, il y a de meilleures façons d'écrire la mais pour des raisons de compréhension, il est bon de pouvoir décomposer manuellement et systématiquement toutes les situations possibles et de déterminer ce qu'il faut faire dans chaque situation. How To Design Programs est un excellent livre pour apprendre à être systématique de cette façon.
Merci, je vais y aller :) – maclunian