【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《杨辉三角C语言代码》,欢迎阅读!
杨辉三角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.wddqxz.cn/6ad00e9831d4b14e852458fb770bf78a65293af2.html