package com.example.demo.yanghui;
import java.util.Scanner;
/**
* 杨辉三角的实现
*/
public class YangHuiSanJiao {
public static void main(final String[] args) {
final Scanner scan = new Scanner(System.in);
System.out.print("请输入杨辉三角形的行数:");
final int row = scan.nextInt();
calculate(row);
}
public static void calculate(final int row) {
for (int i = 1; i <= row; i++) {
for (int j = 1; j <= row - i; j++) {
System.out.print(" ");
}
//打印空格后面的字符, 从第1 列开始往后打印
for (int j = 1; j <= i; j++) {
System.out.print(num(i, j) + " ");
}
System.out.println();
}
}
public static int num(final int x, final int y) {
//这两种情况分别是每行的第一列和最后一列以及第二行
if (y == 1 || y == x) {
return 1;
}
//根据规则,我们随便找出一个值,这个值等于,他上一行左列的值加上一行右列的值
final int c = num(x - 1, y - 1) + num(x - 1, y);
return c;
}
}