AI题解9

#1053:【循环嵌套】数字走向3


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 75     通过数: 43

【题目描述】

输入一个正整数n(2<=n<20) 
输出一个n*n的矩阵,场宽为3 

【输入样例】

5

【输出样例】

  1  6 11 16 21
  2  7 12 17 22
  3  8 13 18 23
  4  9 14 19 24
  5 10 15 20 25

提交 统计信息 提交记录


本网站属公益、非盈利性质,仅适当接受少量赞助以支持网站的运行维护。
蜀ICP备2024068936号-2  联系我们: 248801752@qq.com  23967609@qq.com

要解决这个问题,我们需要生成一个n×n的矩阵,其中数字按照特定的顺序填充。具体来说,每一列的数字从上到下依次递增,且每列的首数字比前一列的首数字大n。例如,当n=5时,第一列的数字是1, 2, 3, 4, 5;第二列的数字是6, 7, 8, 9, 10;依此类推。

### 方法思路
1. **分析问题**:矩阵中的数字填充规律是,第i行第j列的数字为`i + (j-1)*n`。例如,第1行第1列的数字是1,第1行第2列的数字是1 + (2-1)*5 = 6,依此类推。
2. **循环嵌套**:使用外层循环控制行数,内层循环控制列数。对于每个单元格,计算其对应的数字并按照场宽为3的格式输出。
3. **格式化输出**:使用Python的字符串格式化功能确保每个数字占据3个字符宽度,右对齐。

### 解决代码
```python
n = int(input())
for i in range(1, n + 1):
    for j in range(1, n + 1):
        num = i + (j - 1) * n
        print(f"{num:3d}", end='')
    print()
```

### 代码解释
1. **输入处理**:读取整数n,表示矩阵的行数和列数。
2. **外层循环**:`for i in range(1, n + 1)`控制行数,从1到n。
3. **内层循环**:`for j in range(1, n + 1)`控制列数,从1到n。
4. **数字计算**:计算当前单元格的数字`num = i + (j - 1) * n`。
5. **格式化输出**:使用f-string`f"{num:3d}"`确保每个数字占据3个字符宽度,右对齐。
6. **换行处理**:每行结束后调用`print()`换行。

通过这种方法,我们可以生成并正确格式化所需的数字矩阵。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值