首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 控制台輸出楊輝三角對齊技巧

     編輯:程式設計綜合問答

問題

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

未對齊效果

核心思路:計算最大寬度 + 字符串格式化

  1. 預先生成所有行,找出最大數字的字符寬度;
  2. 每行居中:(總寬度 - 當前行字符寬度) / 2 計算前導空格;
  3. 使用 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();
}

效果圖

對齊效果

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

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved