• python打印9宫格,25宫格等奇数格,且横竖斜相加和相等


    代码如下:

    #!/usr/bin/env python3
    #-*- coding:utf-8 -*-
    num = int(input('请输入一个奇数:'))
    # 定义一个长为num的列表
    high = [[0] * num ]
    # 先定义一个num*num的一个列表,之后在往里面赋值
    for i in range(num-1):
    high += [[0]*num]
    n = 1
    # 先确定第一行中间值为1
    high[0][num//2] = n
    x = 0
    y = num//2
    # 依次向high列表赋值从2开始
    for j in range(1,num*num):
    # x表示第几行,y表示第几列,j表示x,y坐标的值
    j = j + 1
    x = x - 1
    y = y + 1
    # 判断符合哪几种可能性
    if y > (num - 1) and x < 0 :
    x = x + 2
    y = y - 1
    high[x][y]=j
    elif x < 0 :
    x = num - 1
    high[x][y]=j
    elif y > num-1 :
    y = 0
    high[x][y]=j
    else:
    if high[x][y] == 0 :
    high[x][y]=j
    elif high[x][y] != 0 :
    x = x + 2
    y = y - 1
    high[x][y]=j
    # 依次把high列表中值打印出来
    for a in range(num):
    for b in range(num):
    # rjust表示输出01,02,03等这种格式,可看我上篇博文介绍
    print( str(high[a][b]).rjust(2,'0'),end=' ')
    print()
    思路:

    主要还是理解最上面的那段口诀,口诀理解啦代码也就懂啦,如有不懂欢迎小伙伴们留言
    ---------------------

  • 相关阅读:
    SRS之SrsRtmpConn::service_cycle详解
    SRS之SrsRtmpServer::connect_app详解
    SRS之RTMP连接处理线程conn:接收客户端推流
    SRS之RTMP handshake
    SRS之RTMP的TCP线程(即监听线程)
    CSPS模拟 77
    CSPS模拟 76
    CSPS模拟 75
    CSPS模拟 74
    CSPS模拟 73
  • 原文地址:https://www.cnblogs.com/ly570/p/11211011.html
Copyright © 2020-2023  润新知