C#实现金字塔杨辉三角
一、杨辉三角的实现步骤
-
输出每行在第一个1出现前应有的空格“ ”
以阶数为3的杨辉三角为例:
len=3 i 左侧“ ”数
“ ”“ ”“ ”1“ ”“ ”“ ” 0 3-0=3
“ ”“ ”1“ ”1“ ”“ ” 1 3-1=2
“ ”1“ ”2“ ”1“ ” 2 3-2=1
即每循环一行先输出这一行的len-i的空格,再进行数字的输出。 -
使用数组完成数字部分的输出
每行第一个和最后一个值为1
每个数字可看作一个数字加上一个空格:
i
1“ ” 0
1“ ”1“ ” 1
1“ ”2“ ”1“ ” 2
将i=1、2拿出来看加粗部分:
[1,0] [1,1]
1" " 1" "
[2,0] [2,1] [2,2]
1" " 2" " 1" "
可以看出a[2,1]=a[1,0]+a[1,1]
二、代码部分
public class 杨辉三角
{
public static void Main()
{
Console.WriteLine("请输入杨辉三角的行数:");
int len = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("输出" + len + "行杨辉三角:");
Console.WriteLine();
int[,] a = new int[length, len];
for (int i = 0; i < len; i++)
{
for (int k = 0; k < len - i; k++)
{
//打印每行第一个1前的空格
Console.Write(" ");
}
for (int j = 0; j <= i; j++)
{
if (j == 0 || i == j)
{
//每行第一个和最后一个值为1
a[i, j] = 1;
}
else
{
a[i, j] = a[i - 1, j - 1] + a[i - 1, j];
}
Console.Write(a[i, j].ToString() + " ");
}
Console.WriteLine();//换行
}
Console.ReadKey();
}
}