1.简单介绍
杨辉三角大家应该都不陌生,我就不多说了!
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
大致就是这样的。
2.两种实现方法
2.1这一种是常规的一般方法,外侧的数字都是1,除了外侧的则是通过1+1=2,1+2=3,2+1=3这种方法得来:
package cn.nuist.pers.October8;
import java.util.Scanner;
public class YangHuiSanJiao {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); //键盘输入行数
int[][] arr = new int[n][n]; //创建一个二维数组
for(int i = 0;i < arr.length;i++) {
arr[i] = new int[i+1]; //将长度为i+1的int型数据赋给数组
}
for(int i = 0;i < arr.length;i++) {
arr[i][0] = 1; //最左侧的数字为1
arr[i][i] = 1; //最右侧的数字为1
for(int j = 1;j<i;j++) { //第二层循环从1开始,条件为j<i
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
}
for(int i = 0;i<arr.length;i++) { //打印数字
for(int j = 0;j<arr[i].length;j++) {
System.out.print(arr[i][j] + "\t");
}
System.out.println();
}
}
}
2.2另一种则是通过:
package cn.nuist.pers.October8;
import java.util.Scanner;
public class YangHuiSanJiaoPlus {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); //键盘输入行数
for(int i = 0;i<n;i++) {
int num = 1;
System.out.format("%"+(n-i)*2+"s", ""); //格式化输出数据
for(int j = 0;j<=i;j++) {
System.out.format("%4d",num);
num = num*(i-j)/(j+1); //自己在草稿纸上演算一下你就会发现这。。
}
System.out.println();
}
}
}
这种简便却高深的方法得来,