Виклик:
Виведіть 'цілі цифри' однієї з наступних шести арифметичних таблиць на основі вхідних даних:
- додавання ( +
);
- віднімання ( -
);
- множення ( *
);
- поділ ( /
);
- експоненція ( ^
);
- модульна операція ( %
).
Правила:
- Що я визначаю як «цілі цифри»: Кожен результат арифметичного операнда , який є точно один з наступних варіантів :
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
Правила виклику:
- Обмеження нових рядків та пробілів не є обов'язковим
- Горизонтальні та вертикальні лінії в тестових випадках не є обов'язковими. Я лише додав їх для кращої читабельності. †
- Пробіли між кожним результатом НЕ обов'язкові.
- Символ для арифметики може бути різним, якщо зрозуміло, який це. Тобто
×
або·
замість*
множення;÷
замість/
поділу; і т.д. †
І поки це єдиний персонаж, так що вибач Пітон**
. - Формат введення гнучкий. Ви можете вибрати індекс від 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
або ділити / мод 0, але вам доведеться обійти це. Що стосується вашого другого питання: Так, звичайно, якщо цифри все ще знаходяться в одних стовпцях / рядках, ви можете використовувати стільки пробілів, скільки вам потрібно.
y-x
, y/x
, y^x
і y%x
замість того x-y
, x/y
, x^y
і x%y
? Гм, мабуть, це може бути добре. Я відредагую його у відповіді; до тих пір, поки ви будете послідовними для всіх шести з них (так не y-x
і x/y
з однаковою відповіддю).