Мы все сделали это, ну, может быть, и нет, но создание собственного языка инопланетян и системы нумерации является одним из основных элементов фэнтезийного письма, но в основном это просто забавное занятие.
Задача проста, взять два входа:
Упорядоченный список вводит 10 [десять] уникальных «цифр» (любой печатный символ ASCII) и интерпретирует их по порядку как значения 0, 1, 2, 3, ..., 9
+ Есть исключения из того, что здесь может быть цифрой. Арифметические операторы (+, -, *, /), круглые скобки и пробелы не могут использоваться в качестве одной из цифр.
Арифметическая задача, использующая только эти «цифры»
И вывести эквивалентный целочисленный результат в заданной форме.
Вот пример:
INPUT
abcdefghij
bcd + efg + hij
OUTPUT
bdgi
В этом примере, входной список (вы можете выбрать, в какую форму входит список) для 'abcdefghij' соответствует '0123456789', так же как 'hjkloiwdfp' также будет соответствовать 1 к 1 с '0123456789', где вместо 'a' ассоциируется с ноль, «ч» делает. Следующее арифметическое «переводит» в 123 + 456 + 789, что равно 1368. Затем оно должно быть выведено в той форме, которую мы ему дали, поэтому b (который представляет 1) d (для 2) g (для 6) и i (для 8.).
ТЕСТОВЫЕ СЛУЧАИ
abcdefghij
abc + def - ghij
-gedc
qwertyuiop
qwerty / uiop
e
%y83l;[=9|
(83l * 9) + 8%
y9|8
БОЛЬШЕ ПРАВИЛ
- Стандартные лазейки запрещены!
- Это код гольфа, поэтому выигрывают кратчайшие ответы в байтах.
- Это должна быть полная программа или функция, принимающая входы и выходы в любом формате, который лучше всего подходит для вас. (Просто нельзя добавить дополнительную информацию во входные данные, только «цифры» и выражение.
- Используйте любой язык, который вам нравится (если он соответствует другим правилам)
1
для 5/3
, а не 2
из-за целочисленного деления (не округления). Это не делает задачу недействительной, но вам, возможно, придется разрешить разные приемлемые ответы для одного и того же теста (см. Мой ответ по T-SQL ниже).
q.ioiopewioyetqorw...
. Если да, то какое округление следует применять?