杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。
杨辉三角是数学中很经典的一个规律,今天我们用编程实现杨辉三角的打印。
这次编程的实现利用了杨辉三角中每个数等于它上方两数之和。
注意:第一位为固定的1,第一个三角形不适合这个规律,但我们可以在编程中轻易的化解。
既然是一个二维的图案,然后还是有一定规律的,我们可以用二维数组来实现。
既然是数组,就是从0作为起始位的。我的的目的就是构造出如下的图:
我们先把特殊的外围一圈1打印出来(10层为例):
int arr[10][10] = {
0 };
for (int a = 0; a < 10; a++){
for (int b = 0; b < 10; b++){
arr[a][0] = 1;
arr[a][a] = 1;
}
}
如图所示:
接下来打印内部数字:
for (int a = 2; a < 10; a++){
for (int b = 0; b < a; b++){
arr[a][b] = arr[a - 1][b - 1] + arr[a - 1][b];
}
}
在这里杨辉三角已经构造完成,然后用一个循环打印我们构造的二维数组
源代码如下:
#include<stdio.h>
#include<stdlib.h>
int main(){
int arr[10][10] = {
0 };
for (int a = 0; a < 10; a++){
for (int b = 0; b < 10; b++){
arr[a][0] = 1;
arr[a][a] = 1;
}
}
for (int a = 2; a < 10; a++){
for (int b = 0; b < a; b++){
arr[a][b] = arr[a - 1][b - 1] + arr[a - 1][b];
}
}
for (int a = 0; a < 10; a++){
for (int b = 0; b <= a; b++){
printf("%4d", arr[a][b]);
}
printf("\n");
}
system("pause");
return 0;
}