打印杨辉三角
杨辉三角,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年。杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合。
规律如下:
1.每行端点与结尾的数为1
2.每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角。即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和,这也是组合数的性质之一。即 C(n+1,i)=C(n,i)+C(n,i-1)。
因此代码如下:
#include<stdio.h>
//杨辉三角
int main()
{
const int n = 11;
int i, j, a[n][n];
//使第一列和对角线元素的值为1
for (i = 1; i<n; i++)
{ //前两行全为1,拿出来单独处理
a[i][i] = 1;
a[i][1] = 1;
}
for (i = 3; i<n; i++)
for (j = 2; j <= i - 1; j++)
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];//每个数等于它上方两数之和,如a32=a21+a22
//输出数组各元素的值
for (i = 1; i<n; i++){ //从第一行开始
for (j = 1; j <= i; j++) //利用j将每一行的数据全部输出
cout << setw(5) << a[i][j] << " "; //在C++中,setw(int n)用来控制输出间隔,这里是指前元素末尾与后元素末尾之间有个5空格位
cout << endl;
}
cout << endl;
return 0;
}
结果如下: