You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何返回N*N方阵的对角线/反对角线数组并输出符合要求的格式

矩阵反对角线按指定规则打印解决方案

遍历规则

  • 对角线遍历规则:i自增1、j自减1
  • 反对角线遍历规则:i自减1、j自增1

示例输入矩阵

A = [[1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]]

期望输出格式

1 0 0
2 4 0
3 5 7 
6 8 0
9 0 0

问题说明

现有代码已经正确提取了所有反对角线的元素,但输出为一维列表,没有按单条对角线分组补0,且元素顺序需要调整以匹配输出要求。

修正后代码

def print_diagonal(A):
    m = len(A)
    n = len(A[0])
    result = []
    # 遍历起点在第一列的对角线
    for k in range(m):
        i = k
        j = 0
        current_line = []
        while i >= 0:
            current_line.append(str(A[i][j]))
            i -= 1
            j += 1
        # 调整元素顺序,补0到行长度等于矩阵阶数
        current_line.reverse()
        current_line += ['0'] * (n - len(current_line))
        result.append(' '.join(current_line))
    # 遍历起点在最后一行的对角线
    for k in range(1, n):       
        i = m - 1
        j = k
        current_line = []
        while j <= n - 1:
            current_line.append(str(A[i][j]))
            i -= 1
            j += 1
        current_line.reverse()
        current_line += ['0'] * (n - len(current_line))
        result.append(' '.join(current_line))
    return result
        
A = [[1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]]
# 逐行输出结果
for line in print_diagonal(A):
    print(line)

输出验证

运行上述代码可直接得到与期望完全一致的输出结果。

内容的提问来源于stack exchange,提问作者abd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 17:18:02