杨辉三角算是我们比较常见的了,杨辉三角形又称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();//每一行满足条件后换行 } } }