杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉所著的《详解九章算法》一书中出现。
在欧洲,帕斯卡在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。
有如下特点:
1.每个数等于它上方两数之和。
2.每行数字左右对称,由1开始逐渐变大。
3.第n行的数字有n项。前n行共[(1+n)n]/2 个数。
4.每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角。即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和,这也是组合数的性质之一。即 C(n+1,i)=C(n,i)+C(n,i-1)。
原理图如下:
根据他的特点与规律可用编码实现。且用二维数组与循环实现。
源代码:
//杨辉三角
#include<stdio.h>
int main()
{
int a[10][10], i, j;
int n = 0;
scanf_s("%d", &n);
//要输出的行数
for (i = 0; i < n; i++)
{
for (j = 0; j <= i; j++)
{
if (i == j || j == 0)
{
a[i][j] = 1;
}
else
{
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
}
}
for (i = 0; i < n; i++)
{
for (j = 0; j <= i; j++)
{
printf("%5d", a[i][j]);
}
printf("\n");
}
return 0;
}