酷代码 AI
菜单

小核桃想生成一个特定样式的矩阵,她将其命名为 “竖条纹小行星矩阵”。请你编写一个程序,根据给定的行数n和列数m生成并输出这个n行m列的矩阵。 输入: 两个整数n与m,分别表示 "竖条纹小行星矩阵"的行数与列数。 输出: 一个行数为n,列数为m的“竖条纹小行星矩阵”。#include <iostream> using namespace std; int main() { int m, n; cin >> n >> m; return 0; }

问题分析 “竖条纹小行星矩阵”通常可以理解为矩阵的每一列要么全是 `*`,要么全是 `#`,这里我们可以设定奇数索引列(索引从 0 开始)为 `*`,偶数索引列为 `#` 来生成矩阵。 代码实现 ```cpp #include <iostream> using namespace std; int main() { int m, n; cin >> n >> m; // 外层循环控制行数 for (int i = 0; i < n; i++) { // 内层循环控制列数 for (int j = 0; j < m; j++) { // 判断列的索引是奇数还是偶数 if (j % 2 == 0) { cout << '#'; } else { cout << '*'; } } // 每行输出结束后换行 cout << endl; } return 0; } ``` 代码解释 1. 输入部分:通过 `cin` 读取用户输入的行数 `n` 和列数 `m`。 2. 外层循环:`for (int i = 0; i < n; i++)` 用于控制矩阵的行数,循环 `n` 次,每次循环代表矩阵的一行。 3. 内层循环:`for (int j = 0; j < m; j++)` 用于控制矩阵的列数,循环 `m` 次,每次循环代表矩阵的一列。 4. 元素输出:在内层循环中,通过判断列索引 `j` 是否为偶数(`j % 2 == 0`)来决定输出 `#` 还是 `*`。如果列索引是偶数,输出 `#`;如果是奇数,输出 `*`。 5. 换行:当一行的元素输出完毕后,使用 `cout << endl;` 进行换行操作,开始输出下一行。 复杂度分析 - 时间复杂度:$O(n \times m)$,因为需要遍历矩阵的每一个元素。 - 空间复杂度:$O(1)$,只使用了常数级的额外空间。 [2026-01-31 21:59:57 | AI问答 | 502点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多