杨辉三角简介
杨辉三角图解
杨辉三角特性
由图可知,杨辉三角的特性有:
(1)每一行第一个数以及最后一个数都为1
(2)每一行的列数递增,且每一行列数=行数
(3)每个数等于它上方两数之和
(4)每行数字左右对称,由1开始逐渐变大。
代码
#include <stdio.h>
#define N 20 //输出的杨辉三角的最大行数
int main(){
//定义存放杨辉三角值得二维数组和想要输出的杨辉三角的行数
int a[N][N],n;
//输入函数 输入想要的行数
printf("请输入杨辉三角的行数:");
scanf("%d",&n);
//初始化二维数组 由杨辉三角特性可知,每一行第一个数以及最后一个数都为1
for(int i=0;i<n;i++){
a[i][0]=a[i][i]=1;
}
//
for(int i=2;i<n;i++){ //因为第一行和第二行的值都为1,所以循环从第三行开始即可,此时i=2
for(int j=1;j<i;j++){ //因为第一列的值都为1,所以列数的循环从第二列开始即可,此时j=1;因为每一行最后一列的值为1,无需改变值,所以列数的循环到倒数第二列结束,即j<i
a[i][j]=a[i-1][j-1]+a[i-1][j]; //每个数等于上方两数字之和
}
}
//输出杨辉三角
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
printf("%d\t",a[i][j]);
}
printf("\n");
}
return 0;
}