如何在C#中使用单个for循环生成指定矩阵(优先用/和%运算符)
用单个for循环生成8×8连续整数矩阵
你原本通过两层嵌套for循环生成了如下8×8的连续整数矩阵:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
以下是用单个for循环实现的方案,优先使用除法和取余运算符:
Python 实现
for i in range(1, 65): # 格式化输出保证数字对齐 print(f"{i:2d}", end=" ") # 利用取余判断是否到每行末尾,触发换行 if i % 8 == 0: print()
Java 实现
public class MatrixGenerator { public static void main(String[] args) { for (int i = 1; i <= 64; i++) { // 格式化输出对齐 System.out.printf("%2d ", i); // 取余判断换行时机 if (i % 8 == 0) { System.out.println(); } } } }
逻辑说明
- 遍历1到64的所有整数,每个数对应矩阵中的一个元素
- 用
i % 8 == 0判断当前元素是否是该行的第8个元素,若是则换行,这是核心的取余应用 - 如果需要获取元素对应的行/列索引(从0开始),可以用:
- 行索引:
(i - 1) // 8(整数除法,得到当前元素所在行) - 列索引:
(i - 1) % 8(取余运算,得到当前元素所在列)
- 行索引:
内容的提问来源于stack exchange,提问作者WouterJohannes
相关产品推荐
相关产品推荐

