кодесурса
«Python

Python Math: создать квадратную матрицу, заполненную элементами от 1 до n2 в спиральном порядке

script1adsense2code
script1adsense3code

Python Math: Упражнение-73 с решением

Напишите программу на Python для генерации (с целым числом n) квадратной матрицы, заполненной элементами от 1 до n2 в спиральном порядке.

Пример решения : -

Код Python:

#https://gist.github.com/Ray1988/6806c1b85af70388a277
def generateMatrix(n):
        if n<=0:
            return [] 
        matrix=[row[:] for row in [[0]*n]*n]
        
        row_st=0
        row_ed=n-1
        
        col_st=0
        col_ed=n-1
        current=1
        
        while (True):
            if current>n*n:
                break
            for c in range (col_st, col_ed+1):
                matrix[row_st][c]=current
                current+=1
            row_st+=1
            for r in range (row_st, row_ed+1):
                matrix[r][col_ed]=current
                current+=1
            col_ed-=1
            for c in range (col_ed, col_st-1, -1):
                matrix[row_ed][c]=current
                current+=1
            row_ed-=1
            for r in range (row_ed, row_st-1, -1):
                matrix[r][col_st]=current
                current+=1
            col_st+=1
        return matrix
print(list(generateMatrix(3)))

Пример вывода:

 [[1, 2, 3], [8, 9, 4], [7, 6, 5]] 

Иллюстрированная презентация:

«Python

Блок - схема:

«Блок-схема:

Визуализируйте выполнение кода Python:

Следующий инструмент визуализирует, что компьютер делает шаг за шагом при выполнении указанной программы:

Редактор кода Python:

Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.

Предыдущий: Напишите программу на Python, чтобы создать диапазон для плавающих чисел.
Далее: Напишите программу на Python для выбора случайной даты в текущем году.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code