控制台輸出幾何圖形是初學者迴圈控制的經典練習。本文提供四種圖形的標準實作,詳細解析空白與星號的行列關係,並附楊輝三角的陣列演算法邏輯。
第 i 行:5-i 個空格 + 2*i-1 顆星號
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5-i; j++) cout << ' ';
for (int j = 1; j <= 2*i-1; j++) cout << '*';
cout << endl;
}
第 i 行:i-1 個空格 + 9-2*(i-1) 顆星號
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= i-1; j++) cout << ' ';
for (int j = 1; j <= 9-2*(i-1); j++) cout << '*';
cout << endl;
}
上半部正三角(1~5 行)+ 下半部倒三角(4~1 行)
// 上半
for (int i = 1; i <= 5; i++) { /* 同正三角 */ }
// 下半
for (int i = 4; i >= 1; i--) { /* 同倒三角,行數從 4 遞減 */ }
核心規律:a[i][j] = a[i-1][j-1] + a[i-1][j+1](採用間隔陣列對齊顯示)
int a[10][21] = {0};
a[0][10] = 1; // 頂點置中
for (int i = 1; i < 10; i++)
for (int j = 10-i; j <= 10+i; j += 2)
a[i][j] = a[i-1][j-1] + a[i-1][j+1];
// 輸出:0 顯示為空格
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 21; j++)
cout << (a[i][j] ? a[i][j] : ' ');
cout << endl;
}