学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

请帮忙解释一下杨辉三角.

请帮忙解释一下杨辉三角.

/*杨辉三角 */ #include <stdio.h> void main() { int a[80]={0},b[80]={0},i,j,n; do { printf("请输入一个正整数:"); scanf("%d",&n); }while(n<=0||n>16);//如果满足此条件,返回继续输入; b[1]=1; for(j=1;j<=n;j++) { for(i=1;i<=j;i++) a[i]=b[i]+b[i-1]; for(i=1;i<=j;i++) printf("%5d",b[i]=a[i]); printf("\n"); } }

杨辉三角我有点看不懂,规律也不是太明白,请解释一下.谢谢!

TOP

打印以下杨辉三角!
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
我的主页 http://www.peiren.com

TOP

你写的程序,我看不懂,我想用一个二维数组更容易理解。

程序如下:

#define N 10

main()

{int a[N][N],i,j;

for(i=0;i<N;i++)

{a[i][0]=1;

for(j=1;j<N;j++)

if(i==j) 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"):

}

}

这样好像更容易理解!

TOP

综合上面的二道例子,我将程序改成下面这样的了,非常容易理解,谢谢楼上的啊. #include <stdio.h> void main() { int a[80][80],i,j,n; do { printf("请输入一个正整数:"); scanf("%d",&n); }while(n<=0||n>16); for(i=0;i<n;i++) { a[i][0]=1; //控制行数,每行第一个数字是1; for(j=1;j<n;j++) //控制列数; { if(i==j) //如果行列相等,那个座标的数就等于1; 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"); } }

学好编程就能编出自己的未来! 加油!自信!努力!奋斗!

TOP

发新话题