解决问题:输出杨辉三角的前n行(n<20)。每个元素占6列。杨辉三角形是形如
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
的三角形,其实质是二项式(a+b)的n次方展开后各项的系数排成的三角形,它的特点是左右两边全是1,从第二行起,中间的每一个数是上一行相邻两个数之和。
(a+b)^n系数
a[i][j-1]+a[i][j]
等于a[i+1][j]
可以用一个二维数组a来存储杨辉三角的所有元素
a[0][0]
、
a[1][0]
、
a[1][1]
、最左边一列及对角线上的元素均为
1
。
a[0][0] = a[1][0] = a[1][1] = 1;
for(i = 2; i < n; i++)
a[i][0] = a[i][i] = 1;
其他元素递推计算,
a[i][j](i=2,...,n
,
j=1,...,i-1)
是其正上方元素
a[i-1][j]
和左上方元素
a[i-1][j-1]
之和。
for(i = 2; i < n; i++)
for(j = 1; j < i; j++)
a[i][j] = a[i-1][j] + a[i-1][j-1]; 注意每一行后要输出回车