Я будую гігантського робота-лего, і мені потрібно створити певні передаточні коефіцієнти, використовуючи набір передач. У мене багато передач із загальними розмірами зубчастих коліс: 8, 16, 24 або 40 зубів. Написати програму, яку я можу використовувати, коли я ввожу передавальне співвідношення, і програма підказує мені, яку комбінацію передач я повинен використовувати, щоб отримати потрібне співвідношення.
Коефіцієнт введення визначається на стандартному вході (або еквіваленті вашої мови) з двома цілими числами, розділеними двокрапкою. Співвідношення a:bозначає, що вихідний вал повинен обертатися в a/bрази швидше, ніж вхідний вал.
Вихід до стандартного виходу повинен представляти собою один рядок, що містить розділений пробілом список передавальних передач, у вигляді x:yде xрозмір шестірні на вхідному валу і yрозмір шестірні на вихідному валу. Потрібно використовувати мінімально можливу кількість передач для даного співвідношення. Кожен xі yповинен бути одним із 8,16,24,40.
приклади:
1:5 -> 8:40
10:1 -> 40:8 16:8
9:4 -> 24:16 24:16
7:1 -> IMPOSSIBLE
7:7 ->
6:15 -> 16:40
Якщо потрібне передавальне число неможливе, надрукуйте "НЕМОЖЛИВО". Якщо передачі не потрібні, надрукуйте порожній рядок.
Це кодовий гольф, виграє найкоротша відповідь.
1:5 -> 8:40і 10:1 -> 40:8має сенс, але інших не так вже й багато.
1:5означає, що вихідний вал обертається в 5 разів повільніше, і 8 зубчастих передач на вході та 40 зубчастих передач на виході робить це.
10:1 -> 40:8 16:8не те, що ти сказав. Що з іншими вас бентежить? 9:4реалізується, роблячи 3:2двічі. 3:2реалізується за допомогою 24:16.
7:7це те саме, що 1:1, тому для його здійснення не потрібно передач.