/*
需求:打印杨辉三角形(行数可以键盘录入)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
*/
import java.util.Scanner;
class Array2Test3 {
public static void main(String[] args) {
//每一行的个数与行数相同
//每一行的起始数值为1,后面的数值等于其正上方数值+正上方左边的数值
//每一行的最后一个数都为1
//int[][] arr = {{1},{1,1},{1,2,1},{1,3,3,1},{1,4,6,4,1},{1,5,10,10,5,1}};
//arr[0] ={1}; arr[0][0]=1
//arr[1] ={1,1}; arr[1][0]=1,arr[1][1]=1
//arr[2] ={1,2,1}; arr[2][0]=1,arr[2][1]=2,arr[2][2]=1
//arr[3] ={1,3,3,1}; arr[3][0]=1,arr[3][1]=3,arr[3][2]=3,arr[3][3]=1
//arr[4] ={1,4,6,4,1}; arr[4][0]=1,arr[4][1]=4,arr[4][2]=6,arr[4][3]=4,arr[4][4]=1
//arr[5] ={1,5,10,10,5,1}; arr[5][0]=1,arr[5][1]=5,arr[5][2]=10,arr[5][3]=10,arr[5][4]=5,arr[5][5]=1,
Scanner sc =new Scanner(System.in);
System.out.println("请输入你需要打印的杨辉行数:");
int x = sc.nextInt();//输入的行数其实就是每个一维数组的长度 arr[x-1].length=x
//int[][] arr ={arr[][],arr[][],arr[][],arr[][]};
System.out.println("你输入的行数得到的杨辉三角形是:");
//当行数和列数都知道后,首先定义一个数组
int[][] arr = new int[x][x];
//按照规律进行代码实现
for (int a=0;a<x ;a++ ) {
//a=0行的数值只有一个,就是1;
if(a == 0){
arr[a][a] = 1;
System.out.println(arr[a][a]);
//每一行的数据的规矩就是第一个和最后一个相等都为1;
//后面的数值等于其正上方数值+正上方左边的数值;
}else{
for (int b=0;b<=a ;b++ ) {
//y=0行的数值都是1,都是开头第一位数;
if(b == 0){
arr[a][b] = 1;
System.out.print(arr[a][b]+" ");
//a=b行的数值都是1,同时也是最后一位数值;
}else if(a == b){
arr[a][b] = 1;
System.out.print(arr[a][b]);
System.out.println("");
//每行中除去开头和结尾的数值,其他数值的规律
}else{
arr[a][b]=arr[a-1][b-1]+arr[a-1][b];
System.out.print(arr[a][b]+" ");
}
}
}
}
}
} |