C++程序 打印交叉或X形图案
给定一个数字 n ,我们需要打印大小为 n 的 _X _ 形图案。
输入:n = 3
输出:
输入:n = 5
输出:
输入:n = 4
输出:
我们需要打印 n 行和 n 列。因此,我们运行两个嵌套循环。外部循环逐行打印所有行(运行 i = 1 到 n)。内部循环(运行 j = 1 到 n)运行当前行的所有列。现在一行可以包含空格和“”。我们如何决定在哪里放置空格和“”。当 i = 1 时:第一列和最后一列应该包含“”;当 i = 2 时:第二列和倒数第二列应该包含“”;一般来说,第 i 列和第(n + 1 – i) 列应该包含“$”。
// C++制作X形图案的程序 #include <iostream>
using namespace std;
void printPattern(int& n)
{
// 逐行打印所有行
for (int i = 1; i <= n; i++) {
// 打印当前行的字符
for (int j = 1; j <= n; j++) {
// 当 i = 1 时,我们只在第一列和最后一列中打印“”;
// 当 i = 2 时,我们只在第二列和倒数第二列中打印“”;
// 一般来说,我们只在第 i 和第(n + 1 - i) 列中打印“”。
if (j == i || j == (n + 1 - i))
cout << "$";
else
cout << " ";
}
// 在打印下一行之前先打印一个换行符。
cout << endl;
}
}
// Driver Code
int main()
{
// n 表示我们要制作 X 形图案的行数
int n = 6;
// 函数调用
printPattern(n);
return 0;
}
输出
$ $
$ $
时间复杂度: O(n 2 ),其中 n 表示给定的输入。
辅助空间: O(1),不需要额外的空间,因此是一个常量。