1 条题解
-
0
循环嵌套生成字母矩阵
解题思路
用两层循环按行优先输出。维护一个全局填充编号index,初始0,每输出一个字母就加1。当前位置字符为'A'+index%26,模26让Z之后回到A。
行结束仅输出换行,不重置index,所以第二行接第一行最后一个字母继续。
正确性说明
index始终等于此前已填字符总数,因此index%26正好给出连续循环字母表中的当前偏移。两层循环覆盖n*m个位置且顺序与题面一致,故整个矩阵填充正确。
易错点
每行字符之间一个空格;每行不能从A重新开始;输出char类型而非ASCII整数。
复杂度
时间O(nm),额外空间O(1)。
参考代码(C++11)
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; int index = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (j) cout << " "; cout << char('A' + index % 26); index++; } cout << "\n"; } return 0; }
- 1