Вызов:
Выведите «целочисленные цифры» одной из следующих шести арифметических таблиц на основе входных данных:
- дополнение ( +
);
- вычитание ( -
);
- умножение ( *
);
- деление ( /
);
- возведение в степень ( ^
);
- Операция по модулю ( %
).
Правила:
- Что я определяю как «целые цифры»: Каждый результат арифметического операнда , который является точно один из следующих вариантов :
0
,1
,2
,3
,4
,5
,6
,7
,8
,9
. Это означает, что вы исключаете каждый результат10
или выше, каждый результат-1
или ниже и каждый нецелочисленный результат. Как мы вычисляем арифметические результаты: сначала используя верхнюю цифру, а затем операнд с левой цифрой.Вам разрешено делать это наоборот (т.е.y/x
вместоx/y
), если вы последовательны для всех шести выходов! (Таким образом, вы не можете использоватьy-x
иx/y
в том же ответе.) †- Мы не будем ничего выводить для деления на 0 тестов (для таблиц деления и операций по модулю)
- Мы не будем ничего выводить для крайнего случая
0^0
.
Выход:
Поэтому выведите следующее (формат таблицы несколько гибкий (см. Ниже): поэтому строки являются необязательными и в основном добавляются для удобства чтения тестовых случаев):
Дополнение:
+ | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 | 0 1 2 3 4 5 6 7 8 9
1 | 1 2 3 4 5 6 7 8 9
2 | 2 3 4 5 6 7 8 9
3 | 3 4 5 6 7 8 9
4 | 4 5 6 7 8 9
5 | 5 6 7 8 9
6 | 6 7 8 9
7 | 7 8 9
8 | 8 9
9 | 9
Вычитание:
- | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 | 0 1 2 3 4 5 6 7 8 9
1 | 0 1 2 3 4 5 6 7 8
2 | 0 1 2 3 4 5 6 7
3 | 0 1 2 3 4 5 6
4 | 0 1 2 3 4 5
5 | 0 1 2 3 4
6 | 0 1 2 3
7 | 0 1 2
8 | 0 1
9 | 0
Умножение:
* | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 | 0 0 0 0 0 0 0 0 0 0
1 | 0 1 2 3 4 5 6 7 8 9
2 | 0 2 4 6 8
3 | 0 3 6 9
4 | 0 4 8
5 | 0 5
6 | 0 6
7 | 0 7
8 | 0 8
9 | 0 9
Раздел:
/ | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 |
1 | 0 1 2 3 4 5 6 7 8 9
2 | 0 1 2 3 4
3 | 0 1 2 3
4 | 0 1 2
5 | 0 1
6 | 0 1
7 | 0 1
8 | 0 1
9 | 0 1
Возведение:
^ | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 | 1 1 1 1 1 1 1 1 1
1 | 0 1 2 3 4 5 6 7 8 9
2 | 0 1 4 9
3 | 0 1 8
4 | 0 1
5 | 0 1
6 | 0 1
7 | 0 1
8 | 0 1
9 | 0 1
Модульное:
% | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 |
1 | 0 0 0 0 0 0 0 0 0 0
2 | 0 1 0 1 0 1 0 1 0 1
3 | 0 1 2 0 1 2 0 1 2 0
4 | 0 1 2 3 0 1 2 3 0 1
5 | 0 1 2 3 4 0 1 2 3 4
6 | 0 1 2 3 4 5 0 1 2 3
7 | 0 1 2 3 4 5 6 0 1 2
8 | 0 1 2 3 4 5 6 7 0 1
9 | 0 1 2 3 4 5 6 7 8 0
Правила соревнований:
- Конечные новые строки и конечные пробелы не являются обязательными
- Горизонтальные и вертикальные линии в тестовых случаях являются необязательными. Я только добавил их для лучшей читаемости.†
- Пробелы между каждым результатом НЕ являются необязательными.
- Символ для арифметики может быть другим, если ясно, какой это. Т.е.
×
или·
вместо*
умножения;÷
вместо/
деления; и т.д. †
И пока это один символ, извините за Python**
. - Формат ввода гибкий. Вы можете выбрать индекс от 0-5 или 1-6 для соответствующих шести таблиц; Вы можете ввести операнд-символ; и т. д. (В отличие от того, что вы отображаете в результате, вам разрешено вводить полные строки или
**
в случае с Python.)
Просто убедитесь, что в вашем ответе указан формат ввода!
Основные правила:
- Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
Не позволяйте языкам кода-гольфа отговаривать вас от публикации ответов на языках, не относящихся к кодексу. Попробуйте придумать как можно более короткий ответ для «любого» языка программирования. - Применяются стандартные правила вашему ответу , поэтому вы можете использовать STDIN / STDOUT, функции / метод с правильными параметрами, полные программы. Ваш звонок.
- Стандартные лазейки запрещены.
- Если возможно, добавьте ссылку с тестом для вашего кода.
- Также, пожалуйста, добавьте объяснение, если это необходимо.
† Пример правильного вывода без горизонтальных и вертикальных линий в ÷
качестве символа и использования y/x
вместо x/y
:
÷ 0 1 2 3 4 5 6 7 8 9
0 0 0 0 0 0 0 0 0 0
1 1
2 2 1
3 3 1
4 4 2 1
5 5 1
6 6 3 2 1
7 7 1
8 8 4 2 1
9 9 3 1
1
, другие 0
, что-то еще, 0^0
или разделяют / mod 0, но вам придется обойти это. Что касается вашего второго вопроса: Да, конечно, пока цифры находятся в тех же столбцах / строках, вы можете использовать столько пробелов, сколько захотите.
y-x
, y/x
, y^x
и y%x
вместо того x-y
, x/y
, x^y
и x%y
? Хм, я думаю, это может быть хорошо. Я отредактирую это в ответе; до тех пор, пока вы будете последовательны для всех шести из них (так нет y-x
и x/y
в том же ответе).