杨辉三角算是我们比较常见的了,杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。
它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。
以下代码是打印十一行杨辉三角:
方法一:
package com;
public class D {
public static void main(String[] args){
final int NMAX=10;
int[][] odds=new int[NMAX+1][];//定义一个数组,用来存储杨辉三角
for(int n=0;n<=NMAX;n++){
odds[n]=new int[n+1];
}
for (int n=0;n<odds.length;n++){//核心代码
for(int k=0;k<odds[n].length;k++){
int lotteryOdds=1;
for (int i=1;i<=k;i++){//杨辉三角中第二行开始
lotteryOdds=lotteryOdds*(n-i+1)/i;
}
odds[n][k]=lotteryOdds;
}
}
for (int[] row:odds){//遍历,将所得的杨辉三角打印出来
for (int odd:row)
System.out.printf("%4d",odd);
System.out.println();
}
}
}
方法二:
import java.util.Scanner;
public class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int a[][] = new int[n][n];
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
if(j==0 || i==j){
a[i][j]=1;//把杨辉三角值为一的边存储在数组对应的位置
}
}
}
for(int i=1;i<n;i++){
for(int j=1;j<i;j++){//把杨辉三角的内部数字存储在数组对应位置
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
System.out.print(a[i][j]+" ");//打印空格
}
System.out.println();//每一行满足条件后换行
}
}
}