我们怎么实现使用C++语言,打印一个倒三角形呢?
题目描述
输入一个整数打印字符图形
输入
一个整数(0<N<10)
输出
一个字符图形,如:n=3,则输出图形如下:
×××××
□×××
□□×
代码实现 - 方法1
#include <iostream>
using namespace std;
int main(){
/*
思路一:找出循环的规律,第i行有多少个空格,多少星
i=1 0个空格 5个星 3 * 2 - 1 = 5
i=2 1个空格 3个星 2 * 2 - 1 = 3
i=3 2个空格 1个星 1 * 2 - 1 = 1
第i行i-1个空格(n-i+1)*2-1个星
*/
int n,i,j;
cin >> n;
// 输出n行
for(i = 1;i <= n;i++){
// 输出第i行的i-1个空格
for(j = 1;j <= i - 1;j ++){
cout << " ";
}
// 输出第i行的(n - i + 1) * 2 - 1颗星
for(j = 1;j <= (n - i + 1) * 2 - 1;j++){
cout << "*";
}
// 第i行的空格和星输出结束,换行
cout << endl;
}
}
代码实现 - 方法2
#include <iostream>
using namespace std;
int main(){
/*
思路:将星号正三角行数直接倒过来就形成了倒三角
*/
int n,i,j;
cin >> n;
// 循环产生n行(i代表行数)
for(i = n;i >= 1;i--){
// 第i行有n - i个空格
for(j = 1;j <= n - i;j ++){
cout << " ";
}
// 第i行有 2 * i - 1 颗星
for(j = 1;j <= 2 * i - 1;j++){
cout << "*";
}
// 第i行的空格和星输出结束,输出换行
cout << endl;
}
}