利用java二维数组打印杨辉三角
题目:
打印杨辉三角形(行数可以键盘录入)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 51
思路:
通过观察发现:
1.每一行的第一列和最后一列都是1,每行的数字个数等于该行行数
2.从第三行开始,从第二列开始,这个数字等于他上一行的前一列和上一行的本列之和
步骤:
1.设置每一行的第一列和最后一列都是1,每行的数字个数等于该行行数
import java.util.Scanner;
public class Demo06 {
/* 需求:
打印杨辉三角形(行数可以键盘录入)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 51
通过观察发现:
1.每一行的第一列和最后一列都是1
2.从第三行开始,从第二列开始,这个数字等于他上一行的前一列和上一行的本列之和
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入行数");
int n = scanner.nextInt();
//定义二维数组存储数据,先把行数和列数定为一样
int[][] arr = new int[n][n];
//1.每一行的第一列和最后一列都是1 ()
for (int i = 0; i < arr.length; i++) {
arr[i][0] = 1;
arr[i][i] = 1;
}
//遍历数组
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j <= i; j++) {//每行的数字个数等于该行行数
System.out.print(arr[i][j] +"\t");
}
System.out.println();
}
}
}
效果:
2.从第三行开始,从第二列开始,这个数字等于他上一行的前一列和上一行的本列之和
import java.util.Scanner;
public class Demo06 {
/* 需求:
打印杨辉三角形(行数可以键盘录入)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 51
我们通过观察发现:
1.每一行的第一列和最后一列都是1 //每行的数字个数等于该行行数
2.从第三行开始,从第二列开始,这个数字等于他上一行的前一列和上一行的本列之和
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入行数");
int n = scanner.nextInt();
//定义二维数组存储数据,先把行数和列数定为一样
int[][] arr = new int[n][n];
//1.每一行的第一列和最后一列都是1 ()
for (int i = 0; i < arr.length; i++) {
arr[i][0] = 1;
arr[i][i] = 1;
}
//2.从第三行开始,从第二列开始,这个数字等于他上一行的前一列和上一行的本列之和
for (int i = 2; i < arr.length; i++) {
for (int j = 1; j <= i; j++) {
arr[i][j] = arr[i-1][j-1]+arr[i-1][j];
}
}
//遍历数组
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j <= i; j++) {//每行的数字个数等于该行行数
System.out.print(arr[i][j] +"\t");
}
System.out.println();
}
}
}
效果:
注:参考B站视频
西部开源Java之数组与排序