zoukankan      html  css  js  c++  java
  • 漂亮的螺旋

    输出一个指定边长的正方形矩阵,矩阵内数值从中间螺旋形分布。

    输入格式:

    输入一行包含一个整数 n(2<=n<=20,并且n是偶数)。

    输出格式:

    长宽都为n的矩阵

    输入样例:

    4
    
     

    输出样例:

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

    n = int(input())           #不管n是偶数还是奇数都能够实现
    num = 1                    #进行螺旋的值
    a = [ [0]*n for i in range(n)]   #产生n阶 数组
    
    begy = int(n/2)
    
    if n%2 == 0:           #判断开始进行的位置,n不同
        begx = begy-1
    else:
        begx = begy
    
    a[begx][begy] = num
    
    #根据层数的不同选择不同的前进路线
    def luxian(i):
        if i%2!=0:
            a = [[0,-1], [1,0],[0,1]]  #左,下,右
        else:
            a = [[0,1],[-1,0],[0,-1]]  #右,上,左
        return a
    
    def zhixin(x):
        global num,begx,begy
        num += 1
        begx += FX[x][0]
        begy += FX[x][1]
        a[begx][begy] = num
    
    
    for i in range(1,n):               #产生螺旋
        FX = luxian(i)
        zhixin(0)
        for j in range(i):
            zhixin(1)
        for j in range(i):
            zhixin(2)
    
    for i in range(n):             #输出
        for j in range(n):
            if j != n-1:
                print(str(a[i][j]).ljust(4),end="")
            else:
                print(a[i][j],end="")
    
        print()
    诚者,君子之所守也。
  • 相关阅读:
    flex 居中并两端对齐
    搭建Docker环境---私有仓库registry搭建
    搭建Docker环境---常用命令
    搭建Docker环境---Docker安装(centos7)
    搭建Docker环境---Docker概述
    Shell脚本
    安装webstrom2019
    mysql主从配置
    MySql5.7安装(centos 7)
    MySQL父子节点查询
  • 原文地址:https://www.cnblogs.com/SkystarX/p/15789898.html
Copyright © 2011-2022 走看看