使用二維數(shù)組打印一個(gè) 10 行楊輝三角。
邏輯:
1.第一行有 1 個(gè)元素, 第 n 行有 n 個(gè)元素
2.每一行的第一個(gè)元素和最后一個(gè)元素都是 1
3.從第三行開(kāi)始, 對(duì)于非第一個(gè)元素和最后一個(gè)元素的元素往产。即:
yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];
public static void main(String[] args) {
//1.聲明并初始化二維數(shù)組
int[][] yanghui = new int[10][];
//2.給數(shù)組的元素賦值
for (int i = 0; i <= yanghui.length - 1; i++) {
yanghui[i] = new int[i + 1];
//2.1 給首末元素賦值
yanghui[i][0] = yanghui[i][i] = 1;
//2.2 給每行的非首末元素賦值
//if (i >= 2) {
for (int j = 1; j <= yanghui[i].length - 2; j++) {
yanghui[i][j] = yanghui[i - 1][j - 1] + yanghui[i - 1][j];
}
}
//}
//3.遍歷二維數(shù)組廓八,輸出等腰三角形的楊輝三角
for (int i = 0; i < yanghui.length; i++) {
if (i != yanghui.length - 1) { //最后一行不需要空出格子
// 第一行空出 (6/2)*9個(gè)格子亡哄,第二行空出 (6/2)*8個(gè)格子湾宙,以此類推...
System.out.printf("%" + (3 * ((yanghui.length - 1) - i)) + "s", "");
}
// 空出格子后幕庐,再輸出內(nèi)容
for (int j = 0; j < yanghui[i].length; j++) {
//每次輸出的內(nèi)容都占用6個(gè)格子
System.out.printf("%-6s", yanghui[i][j]);
}
System.out.println();
}
}