Уравновешивание
обзор
Учитывая ввод 3 однозначных положительных целых чисел, представляющих набор весов, выведите ASCII-представление качелей с весами, размещенными на нем, чтобы они находились в равновесии вокруг центральной оси, принимая во внимание эффекты рычага.
Каждое число имеет вес, равный его значению. Крутящий момент каждого числа - это вес, умноженный на расстояние от центра в символах. Чтобы качели находились в равновесии, суммарный крутящий момент весов слева от качелей должен быть равен крутящему моменту справа, вот так .
вход
3 целых числа в диапазоне 1-9. Вы можете ввести целые числа, как это удобно, например, кортеж, 3 значения, разделенные запятыми и т. Д. Однако ваша программа должна быть способна обрабатывать ввод чисел в любом порядке (т. Е. Не предполагать, что значения будут отсортированы). Можно ввести повторяющиеся числа (например, 2,3,2).
Входные данные всегда математически допускают допустимый выходной сигнал, в противном случае входные данные являются недействительными.
Выход
Выходными данными должны быть 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
так далее
Ваша программа должна выводить только один из допустимых выходов. Не нужно выводить ошибку, если ввод неверен.
Заметки
- Это код-гольф, поэтому выигрывает самая короткая программа в байтах
- Программа может быть автономной или функцией, которая принимает числа в качестве входных данных и возвращает строку.
- Трейлинг новой строки и пробела на последней строке не является обязательным
- Если вы не знаете, что такое качели , это также называется качели или качели.