数组的形式
//杨辉三角
public static int[][] triangle(int n){
int[][] arr = new int[n][n];
for (int i = 0; i < n; i++) {
arr[i][0] = arr[i][i] = 1;
for (int j = 1; j <= i; j++) {
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
}
}
return arr;
}
//打印
public static void print(int arr[][]){
int len = arr.length;
for (int i = 0; i < len; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
//美观的打印
public static void main(String[] args) {
int n = 5;
int[][] arr = triangle(n);
print(arr);
}
执行结果
泛型
其实也相当于把它看成一个二维数组。
//杨辉三角
public static List<List<Integer>> generate(int n){
List<Integer> list = new ArrayList();
list.add(1);
List<List<Integer>> row = new ArrayList();
row.add(list);
for (int i = 1; i < n; i++) {
List<Integer> col = new ArrayList();
col.add(1);
for (int j = 1; j < i; j++) {
List<Integer> ret = row.get(i - 1);
int num = ret.get(j - 1) + ret.get(j);
col.add(num);
}
col.add(1);
row.add(col);
}
return row;
}
public static void main(String[] args) {
List<List<Integer>> ret = generate(5);
System.out.println(ret);
}