Переведите с Phyton на C++ import sys
N = int(sys.stdin.readline())
M = int(sys.stdin.readline())
Map = [["."] * (M + 2)]
for i in range(N):
Map.append(list("." + sys.stdin.readline().rstrip() + '.'))
Map.append(['.'] * (M + 2))
for y in range(1, N + 1):
for x in range(1, M + 1):
if Map[y][x] == '.' and (
Map[y - 1][x] == '#' or Map[y + 1][x] == '#' or
Map[y][x - 1] == '#' or Map[y][x + 1] == '#' or
Map[y - 1][x - 1] == '#' or Map[y - 1][x + 1] == '#' or
Map[y + 1][x - 1] == '#' or Map[y + 1][x + 1] == '#'):
Map[y][x] = '*'
cx = x
cy = y
while True:
sys.stdout.write(str(cy) + ' ' + str(cx) + '\n')
Map[cy][cx] = '.'
for dx, dy in ((-1, 0), (1, 0), (0, -1), (0, 1)):
if Map[cy + dy][cx + dx] == '*':
cx += dx
cy += dy
break
else:
break
Экспоненциа́льная за́пись — представление действительных чисел в виде мантиссы и порядка. Удобна при представлении очень больших и очень малых чисел, а также для унификации их написания.
{\displaystyle N=M\cdot n^{p}} N=M\cdot n^{p}, где
N — записываемое число;
M — мантисса;
n — основание показательной функции;
p (целое) — порядок;
{\displaystyle n^{p}} n^{p} — характеристика числа.
Примеры:
1 000 000 (один миллион): {\displaystyle 1{,}0\cdot 10^{6}} 1{,}0\cdot 10^{6}; N = 1 000 000, M = 1,0, n = 10, p = 6.
1 201 000 (один миллион двести одна тысяча): {\displaystyle 1{,}201\cdot 10^{6}} 1{,}201\cdot 10^{6}; N = 1 201 000, M = 1,201, n = 10, p = 6.
−1 246 145 000 (минус один миллиард двести сорок шесть миллионов сто сорок пять тысяч): {\displaystyle -1{,}246145\cdot 10^{9}} -1{,}246145\cdot 10^{9}; N = −1 246 145 000, M = −1,246145, n = 10, p = 9.
0,000001 (одна миллионная): {\displaystyle 1{,}0\cdot 10^{-6}} 1{,}0\cdot 10^{{-6}}; N = 0,000001, M = 1,0, n = 10, p = −6.
0,000000231 (двести тридцать одна миллиардная): {\displaystyle 231\cdot 10^{-9}=2{,}31\cdot 100\cdot 10^{-9}=2{,}31\cdot 10^{2}\cdot 10^{-9}=2{,}31\cdot 10^{-9+2}=2{,}31\cdot 10^{-7}} 231\cdot 10^{{-9}}=2{,}31\cdot 100\cdot 10^{{-9}}=2{,}31\cdot 10^{2}\cdot 10^{{-9}}=2{,}31\cdot 10^{{-9+2}}=2{,}31\cdot 10^{{-7}}; N = 0,000000231, M = 2,31, n = 10, p = −7.
Объяснение: както так
1. Для начала, давайте объясним, что такое двоичное число. В двоичной системе счисления используются только две цифры - 0 и 1. Каждая цифра в двоичном числе называется битом. Это основная система счисления, которую используют компьютеры.
2. Мы видим первое двоичное число: 0110. Чтобы найти его десятичный эквивалент, мы должны перевести каждую цифру двоичного числа в десятичные числа и сложить их вместе.
- Первая цифра 0, поэтому она не будет вносить вклад в десятичный результат.
- Вторая цифра 1 означает, что мы должны добавить 2^3 к десятичному результату. 2^3 = 8.
- Третья цифра 1 означает, что мы должны добавить 2^2 к десятичному результату. 2^2 = 4.
- Четвертая цифра 0, поэтому она также не будет вносить вклад в десятичный результат.
Суммируя все вместе, мы получаем: 0 + 8 + 4 + 0 = 12. Таким образом, двоичное число 0110 представляет собой десятичное число 12.
3. Мы проделаем тот же процесс с каждым оставшимся двоичным числом.
- Для числа 1001: 1*2^3 + 0*2^2 + 0*2^1 + 1*2^0 = 8 + 0 + 0 + 1 = 9.
- Для числа 1010: 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 8 + 0 + 2 + 0 = 10.
- Для числа 1100: 1*2^3 + 1*2^2 + 0*2^1 + 0*2^0 = 8 + 4 + 0 + 0 = 12.
- Для числа 0011: 0*2^3 + 0*2^2 + 1*2^1 + 1*2^0 = 0 + 0 + 2 + 1 = 3.
4. Теперь, когда у нас есть десятичные эквиваленты для каждого двоичного числа, давайте запишем их в нужные окошки на изображении.
- Двоичное число 0110 означает десятичное число 12, поэтому перенесем число 12 в верхнюю правую клетку.
- Двоичное число 1001 означает десятичное число 9, поэтому перенесем число 9 в верхнюю левую клетку.
- Двоичное число 1010 означает десятичное число 10, поэтому перенесем число 10 в нижнюю правую клетку.
- Двоичное число 0011 означает десятичное число 3, поэтому перенесем число 3 в нижнюю левую клетку.
Получившийся результат выглядит так:
```
+---------+
| 9 10 |
|---------|
| 12 3 |
+---------+
```
Таким образом, мы нашли соответствия между двоичными кодами и их десятичными значениями и правильно заполнили кодовую таблицу.