杨辉三角是一个由数字排列成的三角形数表,一般形式如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
......................................................
杨辉三角最本质的特征是,它的两条斜边都是由数字1组成的,而其余的数则是等于它肩上的两个数之和。
代码:
void PascalTriangle()
{
#define ROW 10
int arr[ROW][ROW];
for(int i=0;i<ROW;i++)
{
for(int j=0;j<=i;j++)
{
if(j==0 || i==j)
{
arr[i][j] = 1; //定义第一列和对角线上的数字为1
}
else
{
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
}
}
for(int i=0;i<ROW;i++)
{
for(int j=0;j<=i;j++)
{
printf("%-4d",arr[i][j]);
}
printf("\n");
}
}
运行结果:
总结:在计算杨辉三角的时候。
第一,先定义第一列的值为1;
第二,定义对角线上的数值为1;
第三,根据某项的值 = 其前一行前一列的值 + 前一行同一列的值 计算剩下的每一项;