酷代码 AI
菜单
服务商

C++实现输入整数 n 输出 n×n 特定图案:代码详解与复杂度分析

以下是实现该功能的C++代码: ```cpp #include <iostream> using namespace std; int main() { int n; // 输入一个正整数n cin >> n; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (i == j || i + j == n - 1) { // 主对角线和副对角线输出* cout << "*"; } else { // 其他位置输出空格 cout << " "; } } // 每行输出完后换行 cout << endl; } return 0; } ``` 代码解释 1. 输入部分:使用`cin`从标准输入读取一个整数`n`,代表图案的行数和列数。 2. 双重循环输出图案: - 外层循环`for (int i = 0; i < n; i++)`控制行数,从第0行到第`n - 1`行。 - 内层循环`for (int j = 0; j < n; j++)`控制列数,从第0列到第`n - 1`列。 - 对于每个位置`(i, j)`,判断是否在主对角线(`i == j`)或副对角线(`i + j == n - 1`)上,如果是则输出`*`,否则输出空格。 3. 换行处理:每行输出完后,使用`cout << endl;`换行。 复杂度分析 - 时间复杂度:$O(n^2)$,因为需要使用双重循环遍历$n\times n$的矩阵。 - 空间复杂度:$O(1)$,只使用了常数级的额外空间。 ######[AI问答 | 425点数解答 | 2026-01-16 20:40:30]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]