Java杨辉三角
杨辉三角
1.三角形的两条斜边上的数都是1
其余的数都等于它肩上两个数字相加
2.杨辉三角具有对称性
3.每一行的第二个数就是这行的行数(从第0行开始)
4.所有行的两个数构成等差数列
5.第n行包含n+1个数
有二种方法可以写,一种是输入法,另一种是输出法
输出法(在main主方法里面写):首先创建一个二维数组
int b[][] = new int[6][6];//创建二维数组
然后写二个for循环遍历数组,用一个if判断j等于0或等于i,然后将二侧数组元素赋值为1
//遍历二维数组的第一层
for(int i=0;i<b.length;i++){
//遍历二维数组的第二层
for(int j=0;j<=i;j++){
if(j==0||j==i){//判断j等于0或j等于i
b[i][j]=1;//将两侧的数组元素赋值为1
}else{
b[i][j]=b[i-1][j]+b[i-1][j-1];
}
}
}
最后就是循环遍历输出结果以及输出结果换行
//打印结果
for (int i=0;i<b.length;i++){
for(int j=0;j<=i;j++){
System.out.print(b[i][j]+" ");//输出结果
}
System.out.println();//输出结果换行
}
输出结果图如下:
输入法(在main主方法里面写):首先引用import java.util.Scanner;然后写键盘输入代码如下
System.out.println("请输入需要查找的元素:");
Scanner in = new Scanner(System.in);
int n = in.nextInt();
然后创建一个二维数组
int a[][] = new int[n][];//创建二维数组
然后在写一个if条件判断语句,n是否等于0,则输出结果,反则二次for循环遍历数组,遍历第二层之前先初始化第二层数组的大小,再用一个if判断j等于0或等于i,然后将二侧数组元素赋值为1
if(n==0){//判断是否等于0
System.out.println("无法遍历");
}else{
//遍历二维数组的第一层
for(int i=0;i<a.length;i++){
a[i] = new int[i+1];//初始化第二层数组的大小
//遍历二维数组的第二层
for(int j=0;j<=i;j++){
if(j==0||j==i){//判断j等于0或j等于i
a[i][j]=1;//将两侧的数组元素赋值为1
}else{
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
}
}
}
最后就是循环遍历输出结果以及输出结果换行
//打印结果
for (int i=0;i<a.length;i++){
for(int j=0;j<=i;j++){
System.out.print(a[i][j]+" ");//输出结果
}
System.out.println();//输出结果换行
}
输出结果图如下: