杨辉三角C语言代码 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 的三角形,其实质是二项式(a+b)的n次方展开后各项的系数排成的三角形,它的特点是左右两边全是1,从第二行起,中间的每一个数是上一行里相邻两个数之和。这个题目常用于程序设计的练习。 下面给出六种不同的解法。 解法一 #include main() { int i,j,n=0,a[17][17]={0}; while(n16) { printf("请输入杨辉三角形的行数:"); scanf("%d",&n); } for(i=0;i main() { int i,j,n=0,a[17][17]={1}; while(n16) { printf("请输入杨辉三角形的行数:"); scanf("%d",&n); } for(i=1;i main() { int i,j,n=0,a[17][17]={0,1}; while(n16) { printf("请输入杨辉三角形的行数:"); scanf("%d",&n); } for(i=1;i main() { int i,j,n=0,a[17][17]={0,1}; while(n16) { printf("请输入杨辉三角形的行数:"); scanf("%d",&n); } for(i=1;i main() { int i,j,n=0,a[17]={1},b[17]; while(n16) { printf("请输入杨辉三角形的行数:"); scanf("%d",&n); } for(i=0;i /*输出杨辉三角*/ { a[j]=b[j]; /*把算得的新行赋给a,用于打印和下一次计算*/ printf("%5d",a[j]); } printf(" "); } } 点评:解法一到解法四都用了二维数组,占用的空间较多。而解法五只使用了两个一维数组。 解法六 #include main() { int i,j,n=0,a[17]={0,1},l,r; while(n16) { printf("请输入杨辉三角形的行数:"); scanf("%d",&n); } for(i=1;i<=n;i++) { l=0; for(j=1;j<=i;j++) { r=a[j]; a[j]=l+r; /*每个数是上面两数之和*/ l=r; printf("%5d",a[j]); /*输出杨辉三角*/ } printf(" "); } } 点评:解法六只使用了一个一维数组和两个临时变量。 本文来源:https://www.wddqw.com/doc/6ad00e9831d4b14e852458fb770bf78a65293af2.html