新浪博客

打印出以下的杨辉三角形

2007-03-28 22:15阅读:
案例四:打印出以下的杨辉三角形(要求打印出10行)。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1

1.程序分析:
杨辉三角形是(a+b)n展开后各项的系数。例如:
(a+b)0展开后为1 系数为1
(a+b)1展开后为a+b 系数为1,1
(a+b)2展开后为a2+2ab+b2 系数为1,2,1
(a+b)3展开后为a3+3a2b+3ab2+b3
系数为1,3,3,1
(a+b)4展开后为a4+4a3b+6a2b2+4ab3+b4 系数为1,4,6,4,1
以上就是杨辉三角形的前5行。杨辉三角形各行的系数有以下规律:
(1)各行第一个数都是1。
(2)各行最后一个数都是1。
(3)从第3行起,除上面指出的第一个数和最后一个数外,其余各数是上一行同列和前一列2个数之和。例如第4行第2个数(3)是第3行第2个数(2)和第3行第1个数(1)之和。可以这样表示:a[i][j]=a[i-1][j]+a[i-1][j-1],其中i为行数,j为列数。
4.程序源代码:
#define N 11
main ( )
{
int i,j,a[N][N];
for (i=1;i<N;i++)
{
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];
for (i=1;i<N;i++)
{
for (j=1;j<=i;j++)
printf(“%6d”,a[i][j]);
printf(“”);
}
printf(“”);
}
5.程序运行结果:
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 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1


我的更多文章

下载客户端阅读体验更佳

APP专享