栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

数据结构与算法分析3 方阵

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构与算法分析3 方阵

n=''
#输入exit退出循环
while n!= exit:
    n = input("请输入维数n,n为奇数")
    if n=='exit':
        print("程序结束")
        break
    elif int(n)%2!=1:
        print("请输入奇数")
        continue
    else:
        n=int(n)
    # 我没有导入numpy库中的zeros方法创建二维数组而是采用了循环创建:
    Array = [[0] * n for i in range(n)]
    #i,j表示行列的值
    i = 0
    j = int((n + 1) / 2 - 1)
    Array[i][j] = 1
    #从第二个数开始循环,到n的平方结束循环
    for num in range(2, n ** 2 + 1):
        #上方出界
        if i == 0 and j < n - 1:
            i = n - 1
            j += 1
            Array[i][j] = num
        #右方出界
        elif i > 0 and j == n - 1:
            i -= 1
            j = 0
            Array[i][j] = num
        #上方、右方均出界
        elif i == 0 and j == n - 1:
            i += 1
            Array[i][j] = num
        #上方已填入数字
        elif Array[i - 1][j + 1] != 0:
            i += 1
            Array[i][j] = num
        #其余情况
        else:
            i -= 1
            j += 1
            Array[i][j] = num
            num += 1
    #循环输出二维数组中的值
    for i in range(n):
        for j in range(n):
            print(Array[i][j],end='t')
        print('')

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/951768.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号