«Среднее число» больше, чем одно из чисел, но меньше, чем другое число.И есть только одно среднее число.Наиболее механический способ решить эту проблему - начать с
middleNumber a b c
| a < b && a > c = a
. Проверьте, является ли a
средним числом, если оно меньше b
, но больше c
.
А что если a
является средним числом, но на самом деле оно на больше , чем b
и меньше , чем c
?Там еще один охранник.Что если b
- это среднее число?Есть еще 2 охранника.Что если c
- это среднее число?Есть еще 2 охранника, всего 6 различных случаев.
(кстати, выражение | a < b && a > c = a
называется охранником. Если вы еще не совсем понимаете, что такое охранники, тоЯ рекомендую LYAH # Guards )
Конечно, есть лучшие способы написания функции, но для понимания целей полезно иметь возможность вручную и систематически разбивать все возможные ситуации,и определите, что делать в каждой ситуации. Как разрабатывать программы - отличная книга для изучения того, как действовать систематически.