Закон про балансування
Огляд
За умови введення 3 одноцифрових натуральних чисел, що представляють собою набір ваг, виведіть ASCII подання пила з розміщеними на ньому вагами, щоб воно було в рівновазі навколо центрального стрижня, враховуючи ефекти важеля.
Кожне число має вагу, рівну його вартості. Крутний момент кожного числа - це вага, помножена на відстань від центру в символах. Щоб пило врівноважилось, сума крутного моменту ваг зліва від пилки повинна дорівнювати тій, що знаходиться праворуч, як це .
Вхідні дані
3 цілих числа в діапазоні 1-9. Ви можете вводити цілі числа, однак це зручно, наприклад, кортеж, 3 значення, розділені комами і т. Д. Однак ваша програма повинна вміти обробляти введення чисел у будь-якому порядку (тобто не передбачаючи сортування значень). Можуть бути введені повторювані номери (наприклад, 2,3,2).
Входи завжди математично дозволять отримати дійсний вихід, інакше введення недійсне.
Вихід
На виході має бути дворядне ASCII представлення пилки з розміщеними на ньому вагами. На першому рядку розміщені цифри, розташовані на відстані, щоб збалансувати їх на пилу.
Числа не можуть бути розміщені в самому центрі шкали, де відстань і, отже, крутний момент буде нульовим. Дійсні відстані від центрального діапазону від 1-10 символів включно ліворуч або праворуч від стрижня.
У місцях, не зайнятих цифрами, є 18 символів підкреслення (центр підкреслення і 10 з кожного боку, мінус 3 позиції, зайняті цифрами). На останньому рядку - один символ каретки, вирівняний із центром шкали, що представляє стрижень.
Приклади
Вхід:
4,7,2
Вихід:
________7___42_______
^
7 * 2 = 4 * 2 + 2 * 3
Числа можна виводити з будь-якої сторони, наприклад, це також було б дійсним:
_______24___7________
^
2 * 3 + 4 * 2 = 7 * 2
Числа можна розміщувати в будь-якому місці шкали, якщо вони балансують, наприклад:
Вхід:
3,1,5
Вихід:
_____5________1__3___
^
5 * 5 = 1 * 4 + 3 * 7
або
____5________1_____3_
^
5 * 6 = 1 * 3 + 3 * 9
або
____5___________1_3__
^
5 * 6 = 1 * 6 + 3 * 8
тощо
Ваша програма повинна вивести лише один з дійсних результатів. Він не повинен виводити помилку, якщо введення недійсне.
Примітки
- Це код-гольф, тому виграє найкоротша програма в байтах
- Програма може бути окремою або функцією, яка приймає числа як вхідні та повертає рядок.
- Обмежування нового рядка та пробілів на останньому рядку необов’язкове
- Якщо ви не знаєте, що таке пиляння , він також відомий як тітер або тітер.