Вступ
XOR - це цифровий логічний ворота, який реалізує ексклюзивний або. У більшості випадків це відображається як ^
. Чотири можливі результати у двійковій формі:
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0
Це також можна розглядати як додавання модуля 2 у двійковій формі. У десятковій формі нам потрібно перетворити десяткові у двійкові 35 = 100011
та25 = 11001
Щоб обчислити значення XOR, розмістимо їх один на одного:
100011
11001 ^
--------
111010 = 58 in decimal
Завдання : Якщо задано ціле значення N більше 1, виведіть таблицю XOR розміром N + 1. Наприклад, N = 5:
0 1 2 3 4 5
1 0 3 2 5 4
2 3 0 1 6 7
3 2 1 0 7 6
4 5 6 7 0 1
5 4 7 6 1 0
Ви можете бачити, що перед кожним номером є один пробіл, оскільки найвища сума в таблиці має довжину 1. Однак якщо взяти N = 9, отримаємо таку сітку:
0 1 2 3 4 5 6 7 8 9
1 0 3 2 5 4 7 6 9 8
2 3 0 1 6 7 4 5 10 11
3 2 1 0 7 6 5 4 11 10
4 5 6 7 0 1 2 3 12 13
5 4 7 6 1 0 3 2 13 12
6 7 4 5 2 3 0 1 14 15
7 6 5 4 3 2 1 0 15 14
8 9 10 11 12 13 14 15 0 1
9 8 11 10 13 12 15 14 1 0
Найвище значення має довжину 2, тому значення вирівнюється вправо до довжини 3 (найвища довжина + 1).
Правила:
- Провідна пробільна зона не є обов'язковою, лише якщо вона використовується (або ні) послідовно
- Ви повинні вивести таблицю у формі, показаній вище.
- Прокладка між стовпчиками повинна бути якомога меншою
- Це код-гольф , тому подання з найменшою кількістю байтів виграє!
output an XOR table with the size N+1