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

如何修改代码实现根据用户输入生成含错位1的n×n矩阵?

生成反对角线含1的n×n矩阵解决方案

问题说明

学校任务要求根据输入的n生成n×n矩阵,示例(输入为5):

0 0 0 0 1
0 0 0 1 0
0 0 1 0 0
0 1 0 0 0
1 0 0 0 0

目前编写的代码仅能输出全0矩阵,需修改实现每行中1的位置按规律切换:

n = int(input("please enter a number: "))

for i in range(1, n+1):
    for j in range(1, n+1):
        print(0, end = " ")
    print('\n')

修改后的代码

n = int(input("please enter a number: "))

for i in range(1, n+1):
    for j in range(1, n+1):
        # 判断当前位置是否为反对角线位置
        if j == n - i + 1:
            print(1, end=" ")
        else:
            print(0, end=" ")
    print()  # 直接换行,避免多余空行

逻辑解释

  • 观察示例规律:第i行的1固定在第n - i + 1列的位置(比如输入n=5时,第1行的1在第5列,第2行在第4列,完全匹配示例)
  • 内层循环遍历每一列j,当j等于计算出的目标列数时输出1,其余情况输出0
  • 替换原代码的print('\n')为print(),避免每行之间出现多余的空行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 16:01:18