Задача на Python
Квадранты
Дано число n. Создайте массив размером n×n и заполните его по следующему правилу. На главной и побочных диагоналях стоят нули, эти диагонали делят массив на четыре части. В верхней части записаны единицы, в правой записаны двойки, в нижней записаны тройки, в левой записаны четверки.
Данную задачу необходимо решить с генератора, который заполнит матрицу A. Вы должны отправить на проверку единственную строку вида:
A = [текст генератора]
Примеры:
Ввод:
8
Вывод:
0 1 1 1 1 1 1 0
4 0 1 1 1 1 0 2
4 4 0 1 1 0 2 2
4 4 4 0 0 2 2 2
4 4 4 0 0 2 2 2
4 4 0 3 3 0 2 2
4 0 3 3 3 3 0 2
0 3 3 3 3 3 3 0
Можно назвать логическим выражением потому, что резальтатом отношения неравенства/равенства всегда будет true/false (истина/ложь), а не какое-то числовое значение.
Блок схему привести сложно - рисовать, а потом всосывать картинку откровенно лень. Но пример приведу:
дано a и b;
если а < b, то идти на пункт 3;
выполнить a + b и вывести результат, окончить вычисления;
если a > b, то идти на пункт 5;
выполнить a - b и вывести результат, окончить вычисления;
если a == b, то a * b и вывести результат.
Теперь, преположим a = 1, b = 10, тогда по логике работы схемы a < b и выведется (пункт 3.) и выведется 11.
a = 10, b = 1. тогда по логике сработает пункт 4 и выведется 9.
a = -5, b = -5, тогда по логике сработает пункт 6 и выведется 25 ((-5)*(-5) = 25).
Результат работы логики.
1210₁₀ = 10010111010₂
1210₁₀ = 2272₈
1210₁₀ = 4BA₁₆
5710₁₀ = 1011001001110₂
5710₁₀ = 13116₈
5710₁₀ = 164E₁₆
8910₁₀ = 10001011001110₂
8910₁₀ = 21316₈
8910₁₀ = 22CE₁₆
Объяснение:
1210₁₀ = 10010111010₂
1210 ÷ 2 = 605 (остаток 0)
605 ÷ 2 = 302 (остаток 1)
302 ÷ 2 = 151 (остаток 0)
151 ÷ 2 = 75 (остаток 1)
75 ÷ 2 = 37 (остаток 1)
37 ÷ 2 = 18 (остаток 1)
18 ÷ 2 = 9 (остаток 0)
9 ÷ 2 = 4 (остаток 1)
4 ÷ 2 = 2 (остаток 0)
2 ÷ 2 = 1 (остаток 0)
1 ÷ 2 = 0 (остаток 1)
Записываем снизу-вверх
1210₁₀ = 2272₈
1210 ÷ 8 = 151 (остаток 2)
151 ÷ 8 = 18 (остаток 7)
18 ÷ 8 = 2 (остаток 2)
2 ÷ 8 = 0 (остаток 2)
Записываем снизу-вверх
1210₁₀ = 4BA₁₆
1210 ÷ 16 = 75 (остаток 10)
75 ÷ 16 = 4 (остаток 11)
4 ÷ 16 = 0 (остаток 4)
A = 10 // B = 11
Записываем снизу-вверх
5710₁₀ = 1011001001110₂
5710 ÷ 2 = 2855 (остаток 0)
2855 ÷ 2 = 1427 (остаток 1)
1427 ÷ 2 = 713 (остаток 1)
713 ÷ 2 = 356 (остаток 1)
356 ÷ 2 = 178 (остаток 0)
178 ÷ 2 = 89 (остаток 0)
89 ÷ 2 = 44 (остаток 1)
44 ÷ 2 = 22 (остаток 0)
22 ÷ 2 = 11 (остаток 0)
11 ÷ 2 = 5 (остаток 1)
5 ÷ 2 = 2 (остаток 1)
2 ÷ 2 = 1 (остаток 0)
1 ÷ 2 = 0 (остаток 1)
Записываем снизу-вверх
5710₁₀ = 13116₈
5710 ÷ 8 = 713 (остаток 6)
713 ÷ 8 = 89 (остаток 1)
89 ÷ 8 = 11 (остаток 1)
11 ÷ 8 = 1 (остаток 3)
1 ÷ 8 = 0 (остаток 1)
Записываем снизу-вверх
5710₁₀ = 164E₁₆
5710 ÷ 16 = 356 (остаток 14)
356 ÷ 16 = 22 (остаток 4)
22 ÷ 16 = 1 (остаток 6)
1 ÷ 16 = 0 (остаток 1)
A = 10 // B = 11 // C = 12 // D = 13 // E = 14
Записываем снизу-вверх
8910₁₀ = 10001011001110₂
8910 ÷ 2 = 4455 (остаток 0)
4455 ÷ 2 = 2227 (остаток 1)
2227 ÷ 2 = 1113 (остаток 1)
1113 ÷ 2 = 556 (остаток 1)
556 ÷ 2 = 278 (остаток 0)
278 ÷ 2 = 139 (остаток 0)
139 ÷ 2 = 69 (остаток 1)
69 ÷ 2 = 34 (остаток 1)
34 ÷ 2 = 17 (остаток 0)
17 ÷ 2 = 8 (остаток 1)
8 ÷ 2 = 4 (остаток 0)
4 ÷ 2 = 2 (остаток 0)
2 ÷ 2 = 1 (остаток 0)
1 ÷ 2 = 0 (остаток 1)
Записываем снизу-вверх
8910₁₀ = 21316₈
8910 ÷ 8 = 1113 (остаток 6)
1113 ÷ 8 = 139 (остаток 1)
139 ÷ 8 = 17 (остаток 3)
17 ÷ 8 = 2 (остаток 1)
2 ÷ 8 = 0 (остаток 2)
Записываем снизу-вверх
8910₁₀ = 22CE₁₆
8910 ÷ 16 = 556 (остаток 14)
556 ÷ 16 = 34 (остаток 12)
34 ÷ 16 = 2 (остаток 2)
2 ÷ 16 = 0 (остаток 2)
A = 10 // B = 11 // C = 12 // D = 13 // E = 14
Записываем снизу-вверх