Вопрос задан 01.05.2019 в 07:25. Предмет Информатика. Спрашивает Ганьшин Сергей.

Дано число n. Создайте массив A[2*n+1][2*n+1] и заполните его по спирали, начиная с числа 0 в

центральной клетке A[n+1][n+1]. Спираль выходит вверх, далее закручивается против часовой стрелки. Входные данные Программа получает на вход одно число n. Выходные данные Программа должна вывести полученный массив, отводя на вывод каждого числа ровно 3 символа. Примеры входные данные 2 выходные данные 12 11 10 9 24 13 2 1 8 23 14 3 0 7 22 15 4 5 6 21 16 17 18 19 20
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Пистолетова Лиза.
Задачка, более менее сложная, но решить можно
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Problem Description

You are given a number n. Your task is to create a 2D array A[2*n+1][2*n+1] and fill it in a spiral pattern, starting from 0 in the central cell A[n+1][n+1]. The spiral pattern goes upwards and then wraps around counterclockwise.

Input

- A single number n.

Output

- The resulting array, with each number formatted to occupy exactly 3 characters.

Example

Input: ``` 2 ``` Output: ``` 12 11 10 9 13 2 1 8 14 3 0 7 15 4 5 6 ```

Solution

To solve this problem, we can follow the following steps: 1. Create an empty 2D array A[2*n+1][2*n+1]. 2. Initialize the current number num to 0. 3. Initialize the current position row and col to n+1. 4. Initialize the current direction dir to 0 (upwards). 5. Iterate k from 1 to 2*n: - Iterate i from 1 to k: - Increment num by 1. - Set A[row][col] to num. - Update row and col based on the current direction dir. - Update the current direction dir. 6. Print the resulting array A with each number formatted to occupy exactly 3 characters.

Here's the implementation in Python:

```python n = int(input())

# Create an empty 2D array A = [[0] * (2 * n + 1) for _ in range(2 * n + 1)]

num = 0 row = n + 1 col = n + 1 dir = 0

for k in range(1, 2 * n + 1): for i in range(1, k + 1): num += 1 A[row][col] = num if dir == 0: row -= 1 elif dir == 1: col -= 1 elif dir == 2: row += 1 else: col += 1 dir = (dir + 1) % 4

# Print the resulting array for i in range(2 * n + 1): for j in range(2 * n + 1): print(f'{A[i][j]:3}', end=' ') print() ```

The above code will produce the desired output for the given input.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос