思路:
首先要知道杨辉三角形的规律:
1、每个数等于它上方两数之和。
2、每行数字左右对称,由1开始逐渐变大。
3、第n行的数字有n项。
4、第n行数字和为2^(n-1)。(2的(n-1)次方)
5 (a+b)^n的展开式中的各项系数依次对应杨辉三角的第(n+1)行中的每一项。
6、第n行的第m个数和第n-m个数相等,即C(n,m)=C(n,n-m),这是组合
数性质
这道题使用第一个规律就可以了。
package 数组;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
public class P5732 {
public static void main(String[] args) throws NumberFormatException, IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
int arr[][] = new int[n][n];
arr[0][0] = 1;
arr[1][0] = 1;
arr[1][1] = 1;
for(int i = 2; i < n; i++) {
for(int j = 0; j <= i; j++) {
if(j == 0 || j == i) //每行第一个数和最后一个数比较特殊
arr[i][j] = 1;
else
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
}
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
if(arr[i][j] != 0)
out.print(arr[i][j]+" ");
}
out.println();
}
out.flush();
}
}