假設總行數 row,第 n 行(1-based):
row - n2*n - 1(等差數列 1, 3, 5...)using System;
class Program {
static void Main() {
int row = 5; // 可改為 Console.ReadLine() 讀取
for (int n = 1; n <= row; n++) {
// 印空格
for (int s = 0; s < row - n; s++)
Console.Write(" ");
// 印星號
for (int k = 0; k < 2 * n - 1; k++)
Console.Write("*");
Console.WriteLine();
}
}
}
*
***
*****
*******
*********
for(int j = 0; j < row-1-i; i++) 條件變數寫錯(應 j++),星號迴圈同理。Console.Write/WriteLine,非 printf。// 倒三角
for (int n = row; n >= 1; n--) { /* 同邏輯 */ }
// 空心三角
for (int n = 1; n <= row; n++) {
// 空格
for (int s = 0; s < row - n; s++) Console.Write(" ");
// 星號:首尾行全印,中間只印首尾
for (int k = 0; k < 2*n-1; k++) {
if (n == row || k == 0 || k == 2*n-2) Console.Write("*");
else Console.Write(" ");
}
Console.WriteLine();
}
掌握行號與字符數的數學關係,圖形輸出題迎刃而解。