打印三角形,打印杨辉三角形
import java.util.*;
public class Main {
/**
* 1
* 1 1
* 1 2 1
* 1 3 3 1
* 1 4 6 4 1
*
* *
* **
* ***
* ****
* @param n
*/
public static void print(int n){
for(int i = 1; i <= n; i++){
int k = n - i;
while(k > 0){
System.out.printf(" ");
k--;
}
int t = i;
while(t > 0){
System.out.printf("* ");
t--;
}
System.out.printf("\n");
}
}
public static void yanghui(int n){
List<ArrayList<Integer>> res = new ArrayList<>();
ArrayList<Integer> tmp = new ArrayList<>();
tmp.add(1);
res.add(tmp);
for(int i = 1; i < n; i++){
List<Integer> pre = res.get(i-1);
ArrayList<Integer> cur = new ArrayList<>();
cur.add(1);
for(int j = 1; j < pre.size(); j++){
cur.add(pre.get(j-1) + pre.get(j));
}
cur.add(1);
res.add(cur);
}
printYanghui(res);
}
public static void printYanghui(List<ArrayList<Integer>> res){
int len = res.size();
for(int i = 0; i < len; i++){
int t = len - i - 1;
while(t > 0){
System.out.printf(" ");
t--;
}
List<Integer> tmp = res.get(i);
for(int j = 0; j < tmp.size(); j++){
System.out.printf("%d ", tmp.get(j));
}
System.out.printf("\n");
}
}
public static void main(String[] args) {
// write your code here
// print(10);
yanghui(10);
}
}
有没有可能用一维数组存储杨辉三角形?