Це засновано на грі, яку один із моїх вчителів математики грав у середній школі. Він напише 5 довільних одноцифрових чисел на дошці, а потім випадкове двоцифрове число. Ми спробуємо створити рівняння, яке використовувало б усі 5 одноцифрових чисел для отримання двоцифрового числа. Ось декілька прикладів із рішеннями, щоб пояснити це краще:
Input: Solution:
7 5 4 8 4 34 5*8-7+4/4 = 34
3 1 5 7 6 54 (7+3)*6-5-1 = 54
3 9 2 1 6 87 9*(2+1)*3+6 = 87
2 1 6 9 7 16 (9-7+6*1)*2 = 16
2 4 5 8 6 96 8*(5+6)+2*4 = 96
3 8 4 5 4 49 8*(4+4)-3*5 = 49
Це завдання полягає в тому, щоб написати програму, яка може генерувати такі рівняння для заданого вводу. Введення даних може бути надано або через командний рядок, або через рядок. П'ять одноцифрових чисел завжди будуть вводитись спочатку (у певному порядку), а потім двоцифрове число. Потім програма роздрукує знайдене рівняння рішення; не потрібно впоратися з ситуаціями, коли немає рішення. Функція повинна бути здатна використовувати в рівнянні такі операції: додавання, віднімання, множення та ділення. Якщо ви хочете дозволити додаткові основні операції, це добре, якщо вони залишаються в дусі виклику (заперечення, експоненція та модуль були б приємними доповненнями). Порядок операцій відповідає стандартним математичним правилам, тому для групування знадобляться дужки.
Програми оцінюються на основі довжини коду (включаючи необхідний пробіл). Примітка: ділення повинно бути точним, а не округленим і не усіченим до найближчого цілого числа.