需求:实现 杨辉三角
分析:
1.n行有n个元素
2.第一个和最后一个元素都为 1
3.除了首位两个元素,其他元素是: 上一层的同一列的元素 + 上一层的前一列元素的和
代码实现:输入层数,生成对应的"杨辉三角"
package yanghui;
import java.util.Scanner;
public class YangHui{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入'杨辉三角'的层数:");
int level = scanner.nextInt();// 输入"杨辉三角"的层数
int[][] arr = new int[level][]; // 声明一个 level 层的二维数组
for (int i=0; i<arr.length; i++) { // 遍历二维数组
arr[i] = new int[i+1]; // 给arr中的一维数组开辟空间, n层有n个元素
for (int j=0; j<arr[i].length; j++) { // 遍历一维数组
if (j == 0 || j == arr[i].length - 1) {
arr[i][j] = 1; // 第一个元素和最后一个元素值为 1
} else {
// 其他元素 = 上一层同一列的元素 + 上一层的前一列的元素
arr[i][j] = arr[i-1][j] + arr[i-1][j-1];
}
}
}
// 遍历输出验证
for (int i=0; i<arr.length; i++) {
for (int j=0; j<arr[i].length; j++) {
System.out.print(arr[i][j] + "\t");
}
System.out.println(); // 换行
}
/**
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
*/
}
}