/*
杨辉三角图形界面:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
......
分析:
实质是(a+b)的n次方展开式各项的系数
可以用二维数组来存放,例如a[i][j]
n 系数的个数
0 1
1 2
2 3
3 4
分析得出,杨辉三角有以下几个特征:
1、第一项系数永远为1,即a[i][0]==1
2、数组长度为(n+1)行,(n+1)列
3、除了第一项和最后一项,其他各项的值等于上一行相邻两数的和,即a[i][j]=a[i-1][j-1]+a[i-1][j]
*/
#include <stdio.h>
int main(int argc, const char * argv[]) {
int n=0;
//要求用户输入n值
printf("请输杨辉三角的n值:\n");
//获取用户输入的值
scanf("%d",&n);
//校验用户输入的值
if (n<0) {
printf("输入不合法!\n");
return 0;
}
//根据n值,定义二维数组,用来存放杨辉三角的值
int a[n+1][n+1];
printf("n = %d的杨辉三角图形为:\n\n",n);
for (int i=0; i<n+1; i++) {
for (int j=0; j<=i; j++) {
if (j==0||j==i) {
a[i][j]=1;
}else{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
printf("%d\t",a[i][j]);
}
printf("\n");
}
return 0;
}
|
|