用数组编程输出杨辉三角形(端点的数为1. 每个数等于它上方两数之和)。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
package 杨辉三角形;
import java.util.Scanner;
public class YangHuiTriangle {
public void Output(int line){
int array[][] = new int[line][];
for(int i=0;i<line;i++){
array[i] = new int[i+1];
}
/**
* 默认每一行第一个数和倒数第一数都是1
* 即第一行第一个数,第二行第一数和第二个数都是1
*/
array[0][0] = 1;
array[1][0] = 1;
array[1][1] = 1;
for(int i=2;i<line;i++){
for(int j=0;j<array[i].length;j++){
/*默认每一行第一个数和倒数第一数都是1*/
if(j==0 || j==array[i].length-1){
array[i][j] = 1;
}else{
/*每个数等于它上方两数之和*/
array[i][j] = array[i-1][j-1] + array[i-1][j];
}
}
}
for(int i=0;i<line;i++){
printBlank(line-i-1);
for(int j = 0;j<array[i].length;j++){
System.out.print(array[i][j]);
if(j!=array[i].length-1){
System.out.print(" ");
}
}
System.out.println();
}
}
private void printBlank(int n) {
// TODO 自动生成的方法存根
for(int i=0;i<n;i++){
System.out.print(" ");
}
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
YangHuiTriangle yht = new YangHuiTriangle();
System.out.print("请输入杨辉三角的阶数:");
Scanner sc = new Scanner(System.in);
int n;
n = sc.nextInt();
System.out.println(n+" 阶的杨辉三角如下所示!");
System.out.println();
yht.Output(n);
}
}