一、杨辉三角的概念
杨辉三角是二项式系数在三角形中的一种几何排列,南宋数学家杨辉在《详解九章算法》中有记载,欧洲的帕斯卡也发现这一规律,故又称帕斯卡三角形,比杨辉晚几百年发现该规律
二、杨辉三角的特性
- 他的两条斜边都是数字1组成,其余的数等于他肩上的两数之和
- 每行数字左右对称,由1开始,逐渐增大
- 第n行的数字个数为n
- 第n行的数字之和为2^n-1;
三、Java代码实现杨辉三角
- 定义一个6行6列的二维数组
- 遍历数组,输出每个数
- 计算:每一行的第一列和最后一列都等于1;其余的数等于他肩上的两数之和
- 打印并输出,控制台显示结果
public class Demo{
public static void main(String[]args){
int len=6;//定义数组长度
int[][]arr=new int[len][len];//定义6行6列的二维数组
for(int i=0;i<len;i++){//遍历数组
for(int j=0;j<=i;j++){
if(j==0||j==i){//每一行的第一列和最后一列都等于1
arr[i][j]=1;
}else{//任何数都等于他肩上的两数之和
arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
}
System.out.print(arr[i][j]+" ");
}
System.out.println();//换行
}
}
}
控制台显示结果
以上是直角的杨辉三角,我们也经常会见到等腰的杨辉三角,代码如下:
public class Demo{
public static void main(String[]args){
int len=6;//定义数组长度
int[][]arr=new int[len][len];//定义6行6列的二维数组
for(int i=0;i<len;i++){//遍历数组
for(int j=0;j<=i;j++){
if(j==0||j==i){//每一行的第一列和最后一列都等于1
arr[i][j]=1;
}else{//任何数都等于他肩上的两数之和
arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
}
}
}
//等腰输出
for(int i=0;i<len;i++){
for(int j=0;j<len-i;j++){
System.out.print(" ");
}
for(int k=0;k<=i;k++){
System.out.print(arr[i][k]+" ");
}
System.out.println();//换行
}
}
}
控制台显示结果