1 题目
功能:打印杨辉三角
描述:打印给定行数的杨辉三角
2 思路
杨辉三角形
又称帕斯卡三角形、贾宪三角形、海亚姆三角形、巴斯卡三角形,是二项式系数的一种写法,形似三角形,在中国首现于南宋杨辉的《详解九章算法》得名,书中杨辉说明是引自贾宪的《释锁算书》,故又名贾宪三角形。
最基本的几个性质
每个数等于它上方两数之和每行数字左右对称,由1开始逐渐变大第n行的数字有n项前n行共[(1+n)n]/2 个数
举例
打印出前 9 行的数字
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
3 代码
#include <stdio.h>
#define N 15
/**
功能:打印杨辉三角
描述:打印给定行数的杨辉三角
**/
intmain(intargc,charconst*argv[]) {
inti,j,k,n,a[N][N];
while(1) {
printf("请输入要打印的行数[范围在1~15之间]:");// 控制在 15 行之内
scanf("%d",&n);
if(n>=1&&n<=15){
break;
}else{
printf("输入的行数不在规定范围内!\n");
continue;
}
}
printf("%d行杨辉三角打印如下:\n",n);
for(i=1;i<=n;i++)
a[i][1]=a[i][i]=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(k=1;k<=n-i;k++)
printf(" ");
for(j=1;j<=i;j++)
printf("%6d",a[i][j]);
printf("\n");
}
printf("\n");
}
示例结果:
请输入要打印的行数[范围在1~15之间]:20
输入的行数不在规定范围内!
请输入要打印的行数[范围在1~15之间]:30
输入的行数不在规定范围内!
请输入要打印的行数[范围在1~15之间]:10
10行杨辉三角打印如下:
1
11
121
1331
14641
15101051
1615201561
172135352171
18285670562881
193684126126843691