杨辉三角我想大家应该都不陌生,在高中的数学教材中都有学过,我这里只是简单地描述提一下。
形如:
这是正序的杨辉三角,每一行之间的规律都是一样的左边的只是多了空格而已,下面直接上正序代码:
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int []Array=new int[0];
int Array1[];
// 根据输入数来打印行数
for(int i=0;i<n;i++){
// 每次都新建一个数组
Array1=new int[Array.length+1];
Array1[0]=1;Array1[Array1.length-1]=1;
// 按照每个数都等于下面两个数之和来计算
for(int j=1;j<Array1.length-1;j++){
Array1[j]=Array[j]+Array[j-1];
}
// 将新建的数组的值赋给原来的数组
Array=Array1;
// 打印
for(int j=0;j<Array.length;j++){
System.out.print(Array[j]+"\t");
}
// 换行
System.out.println();
}
}
倒序的杨辉三角:
public static void main(String[] args) {
System.out.println("请输入打印的行数:");
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int Array[]=new int [0];
//将原杨辉三角的最后的一行打印出来
for(int j=0;j<n;j++){
int []Array1=new int[Array.length+1];
Array1[0]=1; Array1[Array1.length-1]=1;
for(int i=1;i<Array1.length-1;i++){
Array1[i]=Array[i]+Array[i-1];
}
Array=Array1;
}
//把最后一行遍历出来
for(int i=0;i<Array.length;i++){
System.out.print(Array[i]+"\t");
}
System.out.println();
//把原倒数第二行按减法规律递减
for(int j=1;j<n;j++){
int []Array1=new int[Array.length-1];
Array1[0]=1; Array1[Array1.length-1]=1;
for(int i=1;i<Array1.length-1;i++){
Array1[i]=Array[i]-Array1[i-1];
}
for(int k=0;k<Array1.length;k++){
System.out.print(Array1[k]+"\t");
}
System.out.println();
Array=Array1;
}
}