准备复试过程中再次遇到,做一下备忘录,话不多说,直接上代码
package cn.cupid;
import java.util.Scanner;
/**
* @Author: cupid
* Created by Cupid520 on 2019/3/2.
* @Description: 利用杨辉三角打印(a+b)^n方程展开后的各项系数
*
* 0 ----- 1
* 1 ----- 1 1
* 2 ----- 1 2 1
* 3 ----- 1 3 3 1
* 4 ----- 1 4 6 4 1
*
*/
public class Exam_7 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Please input the number n :");
Integer n = scanner.nextInt();
int[][] m = new int[n][];
//初始化数组m
m = init(m);
//填充数据
m = filLData(m);
//打印数据
print(m);
}
private static void print(int[][] m) {
for(int i = 0 ; i < m.length ; i ++){
for(int j = 0 ; j < m[i].length ; j ++){
System.err.print(m[i][j] + " ");
}
System.err.println();
}
}
//初始化数组
public static int[][] init(int[][] m){
for(int i = 0 ; i < m.length ; i ++){
m[i] = new int[i + 1];
}
return m;
}
public static int[][] filLData(int[][] m){
//杨辉三角第i行
for(int i = 0 ; i < m.length ; i ++){
//杨辉三角第i行中系数从左至右依次遍历开始
for(int j = 0 ; j < m[i].length ; j ++){
//每一行最左边数为1,即起始为去1
int leftInit = 1;
for(int g = 1; g <= j ; g ++){
leftInit = leftInit * (i - g + 1) / g;
}
m[i][j] = leftInit;
}
}
return m;
}
}
效果图