LUNar.552 2022-11-11 15:07 采纳率: 83.3%
浏览 65
已结题

python 输入一个自然数n然后输出一个特殊矩阵

img


题目如图 想了好久没想出来可以怎么做,大概要用到for循环吧 求解

  • 写回答

3条回答 默认 最新

  • 谢玄. 2022-11-11 15:30
    关注

    代码入下,注释很明确,不懂再问 ,请采纳,莫辜负!

    # 导入 np
    import numpy as np
    # 输入 层数
    enter = int(input())
    # 计算边长
    box = enter * 2 - 1
    # 根据边长 生成一个 全是 1 的矩阵
    a = np.ones([box, box], dtype="int64")
    # 遍历 每个层
    for flag in range(1, enter):
        # 遍历这个层 的 横排
        for i in range(flag, box-flag):
            # 遍历这个层 的 纵排 
            for j in range(flag, box-flag):
                # z这个位置加一
                a[i, j] += 1
    
    print(a)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
  • 焦糖味土豆 2022-11-11 15:52
    关注

    img

    评论
  • 请叫我问哥 Python领域新星创作者 2022-11-11 17:22
    关注
    n = int(input())
    res = [[i]*n for i in range(1,n+1)] # 创建左上角四分之一的矩阵
    for i in range(n):
        res[i][:i] = range(1,i+1)
        res[i] += res[i][:-1][::-1] # 横向翻转
    res += res[:-1][::-1] # 纵向翻转
    for i in res: # 输出
        print(*i)
    

    顺便实现一下二楼的思路:

    n = int(input())
    w = 2*n-1
    res = [[1]*w for _ in range(w)]
    for i in range(w):
        for j in range(w):
            d = n-max(abs(n-i-1),abs(n-j-1))
            res[i][j] = d
    for i in res:
        print(*i)
    
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月20日
  • 已采纳回答 11月12日
  • 请采纳用户回复 11月12日
  • 创建了问题 11月11日

悬赏问题

  • ¥15 请问这张multisim图的原理是什么,这是一个交通灯,是课程要求,明天要进行解析,但是我们组没一个人会,所以急要,今天要
  • ¥15 ansible tower 卡住
  • ¥15 等间距平面螺旋天线方程式
  • ¥15 通过链接访问,显示514或不是私密连接
  • ¥100 系统自动弹窗,键盘一接上就会
  • ¥50 股票交易系统设计(sql语言)
  • ¥15 调制识别中这几个数据集的文献分别是什么?
  • ¥15 请大家看看报错原因,为啥会这样
  • ¥30 Cocos转UWP应用,支付调起后闪退
  • ¥15 STC32G12K128芯片可以接DS1302时钟模块吗