楊輝三角數字位數不一,直接輸出導致列不對齊,呈現左對齊「階梯狀」。

(總寬度 - 當前行字符寬度) / 2 計算前導空格;String.Format 或 PadLeft 固定寬度輸出。int rows = 10;
List<List<int>> triangle = GenerateYangHui(rows); // 生成數據
// 計算最大數字寬度
int maxNumWidth = triangle.SelectMany(r => r).Max(n => n.ToString().Length);
int colWidth = maxNumWidth + 1; // 每列寬度含間隔
foreach (var row in triangle) {
// 計算行內容總寬
int rowContentWidth = row.Count * colWidth;
// 居中前導空格
int padding = (maxRowWidth - rowContentWidth) / 2;
Console.Write(new string(' ', padding));
foreach (var num in row) {
Console.Write(num.ToString().PadLeft(colWidth));
}
Console.WriteLine();
}

多思考字符寬度計算與居中邏輯,即可完美對齊。