第一种方法
public static void main(String[] args) {
// 杨辉三角形(斐波拉契数列,黄金分割线)
int[][]a = new int [9][9];
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
if (i==j||j==0) {
a[i][j]=1;
}
}
}
for (int i = 1; i < a.length; i++) {
for (int j = 1; j <a[i].length; j++) {
a[i][j]=a[i-1][j-1]+a[i-1][j];//推导后的公式
}
}
for (int i = 0; i < a.length; i++) {
for (int j = 0; j <=i; j++) {
System.out.print(a[i][j]+"\t");
}
System.out.println();
}
}
第二种方法
public static void main(String[] args) {
// TODO Auto-generated method stub
int n=9;
int a [][]=new int [n][];
for (int i = 0; i <n; i++) {
a[i]=new int [i+1];
}
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
if (i==j||j==0) {
a[i][j]=1;
}
}
}
for (int i = 1; i < a.length; i++) {
for (int j = 1; j < a[i].length-1; j++) {
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.print(a[i][j]+"\t");
}
System.out.println();
}
}
思路:第一列和最后一列都是1;
从第三行开始每一列等于上一行那列和前列相加。
然后找规律,推出公式