题意
输入数字linesum
输出linesum行杨辉三角(每一个数字值等于其上任意两个数字和。即,a[row][column] = a[row - 1][column - 1] + a[row - 1][column])且每行数字间用空格隔开
且1 <= linesum <= 34
形如:
5
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[][] Metric = new int[34][34];
for (int row = 0; row < Metric.length; row++) {
Metric[row][0] = Metric[row][row] = 1;
}
for (int row = 1; row < Metric.length; row++) {
for (int column = 1; column < row; column++) {
Metric[row][column] = Metric[row -1 ][column - 1] + Metric[row - 1][column];
}
}
Scanner keyin = new Scanner(System.in);
int linesum = keyin.nextInt();
for (int row = 0; row < linesum; row++) {
for (int column = 0; column <= row; column++) {
System.out.print(Metric[row][column]);
if(column < row)
System.out.print(" ");
}
System.out.println("");
}
}
}
Summary
1.杨辉三角由于直接涉及数字和,故Metric不适合用char[ ]
2.杨辉三角可以用来解决二项式系数(每一行)或组合数问题(C(m,n) = Metric[row][column] | m >= n && row >= column)