C++程序 打印倒置金字塔
这里我们将使用3种不同的方法构建C ++程序来打印倒置金字塔:
- 半倒置 使用 “*”
- 半倒置 使用 数字
- 使用 “*” 的完整倒置金字塔
1.使用“*”打印倒置半三角形的程序
输入:
n=4
输出:
* * * *
* * *
* *
*
正如我们从给定的例子中观察到的那样,打印的行数等于给定的输入n,打印的列数从n递减到1。因此,我们从n到1运行外部for循环,从1到行数运行内部for循环。
例子:
// C ++ program to demonstrate
// inverted half triangle using *
using namespace std;
#include <bits/stdc++.h>
#include <iostream>
int main()
{
int n = 4;
for (int i = n; i >= 1; --i) {
for (int j = 1; j <= i; ++j) {
cout << "* ";
}
cout << endl;
}
return 0;
}
输出
* * * *
* * *
* *
*
时间复杂度: O(n^2)
这里n是行数。
空间复杂度: O(1)
因为使用了常量额外空间。
2.使用数字打印倒置半金字塔的程序
输入:
n=4
输出:
1 2 3 4
1 2 3
1 2
1
从给定的例子中可以看出,我们可以尝试从n到1运行外部for循环,对于每个行遍历,我们应该打印从1到该行号的元素。这意味着我们需要打印特定的列号,而不是打印*。
例子:
// C ++ program to demonstrate
// inverted half triangle using Digits
using namespace std;
#include <bits/stdc++.h>
#include <iostream>
int main()
{
int n=4; // took a default value
for (int i = n; i >= 1; --i) { // loop for iterating
for (int j = 1; j <= i; ++j) { // loop for printing
cout << j << " ";
}
cout << endl;
}
return 0;
}
输出
1 2 3 4
1 2 3
1 2
1
时间复杂度: O(n^2)
空间复杂度: O(1)
因为使用了常量额外空间。
3.使用“*”打印倒置全金字塔的程序
输入:
n = 4
输出:
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*
例子:
// C ++ program to demonstrate
// inverted pyramid using *
using namespace std;
#include <bits/stdc++.h>
#include <iostream>
int main()
{
int n=5;
for (int i = n; i >= 1; --i) {
for (int k = 0; k < n - i; ++k) {
cout << " ";
}
for (int j = i; j <= 2 * i - 1; ++j) {
cout << "* ";
}
for (int j = 0; j < i - 1; ++j) {
cout << "* ";
}
cout << endl;
}
return 0;
}
输出
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*
时间复杂度: O(n^2)
这里n是行数。
空间复杂度: O(1)
因为使用了常量额外空间。
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*
时间复杂度 :给定输入n,O(n 2 )。
空间复杂度 :O(1)。