递归打印参考自网络 循环式自己写的 以需要输出的行数为参数 基本算法未考虑数太大 溢出的情况 #region 打印杨辉三角 private void Print(int lineCount) {//循环打印 int[] _array = new int[lineCount]; _array[0] = 1; int i = 0, j = 0; for (i = 0; i < _array.Length - 1; i++) { _array[i] = 0; } for (i = 0; i < _array.Length - 1; i++) { GetBlank(i, lineCount); System.Console.Write("{0,-3}",1); int temp = 0, transfer = 1; for (j = 1; j < i + 1; j++) { temp = _array[j]; _array[j] += transfer; transfer = temp; //temp必须保存备用 System.Console.Write("{0,-3}",_array[j]); } System.Console.WriteLine(); } } private void GetBlank(int i, int line) { for (int m = 1; m < line - i; m++) System.Console.Write(" "); } private int Yanghui(int i, int j) { if (j == 1 || i == j) return 1; else return Yanghui(i - 1, j - 1) + Yanghui(i - 1, j); } private void YanghuiTrianglePrint(int lineNumber) {//递归输出 for (int i = 1; i <= lineNumber; i++) { GetBlank(i - 1, lineNumber); for (int j = 1; j <= i; j++) { System.Console.Write(Yanghui(i, j) + " "); } System.Console.WriteLine(); } } #endregion