打印杨辉三角
一维数组
Triggle1.java
package 第一章;
//利用一维数组打印杨辉三角
import java.util.Scanner;
public class Triggle1 {
public static void value(int n) {
int i=1;
int triggle[] = new int[n];
for(i=0;i<n;i++) {
triggle[i]=1;//末尾元素一直为1
for (int j=i-1;j>0;j--){
triggle[j]= triggle[j-1]+triggle[j];
}
for(int k=n-i-1;k>0;k--) {//打印空格
System.out.print(" ");
}
for (int j=0;j<=i;j++) {//输出该行的一维数组
System.out.print(triggle[j]+" ");
}
System.out.println();
}
}
public static void main(String[] args){
System.out.println("请输入杨辉三角的行数");
Scanner sca=new Scanner(System.in);
int n=sca.nextInt();
value(n);
}
}
二位数组
/*
杨辉三角
前两行元素为一
自第三行开始除行首和行尾元素其余元素为前一行元素的两数之和
eg:
triggle[3][2]=triggle[2][1]+triggle[2][2]
*/
Triggle2.java
package 第一章;
//利用二维数组打印杨辉三角
import java.util.Scanner;
public class Triggle2 {
public static int[][] value(int n){
int[][] trg=new int[n][];
for(int i=0;i<trg.length;i++) {
trg[i]=new int[i+1];
trg[i][0]=1;
trg[i][i]=1;
}
for(int i=2;i<n;i++) {
for(int j=1;j<i;j++) {
trg[i][j]=trg[i-1][j]+trg[i-1][j-1];
}
}
return trg;
}
public static void print(int[][] trg,int n ) {//打印二位数组
int k;//用来打印空格的变量
for(int i=0;i<trg.length;i++) {
for(k=n-i-1;k>0;k--) {
System.out.print(" ");
}
for(int j=0;j<i+1;j++) {
System.out.print(trg[i][j]+" ");
}
System.out.println("\n");
}
}
public static void main(String[] args) {
System.out.println("请输入杨辉三角的行数");
Scanner sca=new Scanner(System.in);
int n=sca.nextInt();
print(value(n), n);
}
}
运行结果