zoukankan      html  css  js  c++  java
  • Python实现螺旋矩阵

    1,什么是螺旋矩阵?

    类似:

    1 2
    4 3

    1 2 3
    8 9 4
    7 6 5

    1    2  3  4
    12 13 14 5
    11 16 15 6
    10  9   8  7

    2,如何去打印出这个螺旋矩阵?

    以4* 4 矩阵为例:

    第一:打印上面一层

    1    2  3  4

    第二:打印右边一层

    1    2  3  4
        5
        6
        7

    第三:打印下边一层

    1    2  3  4
        5
        6
    10  9   8  7

    第四:打印左边一层

    1    2  3   4
    12           5
    11           6
    10  9   8  7

    这样一圈就打印好了,然后重复上述步骤进行第二层的打印。

    3,python 代码实现

    #!/usr/bin/env python
    # -*- encoding: utf-8 -*-
    '''
    @File        :Spiralmatrix.py
    @Description :
                 Your input is 1
                 1
                 Your input is 2
                 1 2
                 4 3
                 Your input is 3
                 1 2 3
                 8 9 4
                 7 6 5
                 Your input is 4:
                 1  2  3  4
                 12 13 14 5
                 11 16 15 6
                 10 9  8  7
    @CreatTime   :2020/08/27 13:56:03
    @Author      :Yunhgu
    @Version     :1.0
    '''
    def Spiralmatrix(Dimension):
        # 定义一个二维矩阵
        array_lists = [[0 for j in range(Dimension)] for i in range(Dimension)]
        # 定义开始的值
        num = 1
        # 开始螺旋赋值
        for i in range(Dimension//2+1):  # 0 1 2
            # 上边赋值
            for j in range(i, Dimension-i): 
                array_lists[i][j] = num     
                num += 1
            # 右边赋值                    
            for j in range(i+1, Dimension-i):
                array_lists[j][Dimension-i-1] = num
                num += 1
            # 下边赋值
            for j in range(Dimension-i-2, i, -1):
                array_lists[Dimension-i-1][j] = num
                num += 1
            # 左边赋值
            for j in range(Dimension-i-1, i, -1):
                array_lists[j][i] = num
                num += 1
        # 打印结果
        for i in array_lists:
            for j in i:
                print(j, end='	')
            print()
    
    if __name__ == "__main__":
        num = int(input('please input num: '))
        Spiralmatrix(num)
    不论你在什么时候开始,重要的是开始之后就不要停止。 不论你在什么时候结束,重要的是结束之后就不要悔恨。
  • 相关阅读:
    WEB前端:05_scroll滚动(图片/文字滚动)
    WEB前端:04_slider幻灯片(焦点图轮换)
    WEB前端:03_hover切换(显示/隐藏)
    概率统计
    概率统计
    线性代数
    线性代数
    线性代数
    线性代数
    大数据时代,Java通过JFreeChart分析和可视化数据
  • 原文地址:https://www.cnblogs.com/yunhgu/p/13572558.html
Copyright © 2011-2022 走看看