如何修改代码实现根据用户输入生成含错位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
相关产品推荐
相关产品推荐

