杨辉三角(java)

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


下一篇:jdbc 和oracle数据库 建立连接