1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
…
打印上图的杨辉三角,该怎么做呢?
通过观察,得出些规律:
1)每行的第一个数和最后一个数都为1;
2)从第三行开始,每行的第二个数等于本列的上一行与上一行的前一列之和。
直接看代码:
import java.util.Scanner;
public class YangHUiDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//通过键盘输入行数;
System.out.println("请输入行数:");
int a = sc.nextInt();
//定义一个数组,行列数都一样
int[][]arr=new int[a][a];
for (int i=0;i<arr.length;i++){
arr[i][i]=1;//将三角形的每一行的最后一个元素置成1
arr[i][0]=1;//将每一行的第一个数,置成1
}
for (int i =2; i < arr.length; i++) {
for (int j =1; j <= i-1; j++) {
//第三行开始,中间的数等于我上一行的前一列的数和我上一行本列的数之和
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 <=i; j++) {
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
}
}
``