如何使用C++語言列印倒三角形-NOIP基礎
阿新 • • 發佈:2020-12-27
我們怎麼實現使用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;
}
}