酷代码 AI
菜单

小核桃想编写一个程序,让“横条纹小行星矩阵”的行数为n,列数为m。下面请你编写程序,帮助小核桃完成这个问题吧。 输入: 两个整数n与m,分别表示横条纹小行星矩阵的行数,与横条纹小行星矩阵的列数。 输出: 一个行数为n,列数为m的“横条纹小行星矩阵”。#include <iostream> using namespace std; int main() { int m, n; cin >> n >> m; for (int i = 1; i <= n; i++) { //在下面编写代码,当行号为奇数时,输出一行 * //当行号为偶数时,输出一行 # } return 0; }

根据你的需求,要生成“横条纹小行星矩阵”,也就是奇数行输出一行 `*`,偶数行输出一行 `#`。以下是完整的代码实现: ```cpp #include <iostream> using namespace std; int main() { int m, n; cin >> n >> m; for (int i = 1; i <= n; i++) { if (i % 2 == 1) { for (int j = 0; j < m; j++) { cout << '*'; } } else { for (int j = 0; j < m; j++) { cout << '#'; } } cout << endl; } return 0; } ``` 代码解释 1. 输入部分:使用 `cin` 读取用户输入的行数 `n` 和列数 `m`。 2. 外层循环:`for (int i = 1; i <= n; i++)` 用于遍历每一行,从第 1 行到第 `n` 行。 3. 行的判断与输出: - `if (i % 2 == 1)`:判断当前行号是否为奇数。如果是奇数行,使用内层循环 `for (int j = 0; j < m; j++)` 输出 `m` 个 `*`。 - 否则,即当前行号为偶数,使用内层循环输出 `m` 个 `#`。 4. 换行处理:每次输出完一行后,使用 `cout << endl;` 进行换行。 复杂度分析 - 时间复杂度:代码需要遍历矩阵的每一个元素,因此时间复杂度为 $O(n \times m)$,其中 `n` 是行数,`m` 是列数。 - 空间复杂度:只使用了常数级的额外变量,不随输入规模的增大而增加,所以空间复杂度为 $O(1)$。 [2026-01-31 22:02:33 | AI问答 | 464点数解答]

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