杨辉三角形的两种方法

来源:互联网 发布:盒子k歌软件 编辑:程序博客网 时间:2024/05/24 04:51
//杨辉三角形
/*
 * 思路:1、定义二维数组
 *     2、遍历数组的每一行,给每一行的第一列和最后一列,均赋值为1
 *     3、遍历每一行的列,并给num[i][j]赋值

 *     4、循环输出

*/

    public static void main(String[] args) {
        //第一种写法
        Scanner cin=new Scanner(System.in);
        System.out.println("请输入一个正整数:");
        int n=cin.nextInt();
        int trigle[][]=new int[n][n];
        for(int i=0;i<n;i++){
            trigle[i][0]=trigle[i][i]=1;   //第一列和每一行的最后一列,均赋值为1
            for(int j=1;j<i;j++){
                trigle[i][j]=trigle[i-1][j]+trigle[i-1][j-1];
            }
        }
        for(int i=0;i<n;i++){
            for(int j=0;j<=i;j++){
                System.out.print(trigle[i][j]+" ");
            }
            System.out.println();
        }
        
        //第二种写法
        int num[][]=new int[8][];
        for(int i=0;i<num.length;i++){   //遍历每一行
            num[i]=new int[i+1];   //给每一行定义长度,长度大于1,所以加1
            for(int j=0;j<=num[i].length-1;j++){     //遍历列
                if(i==0||j==0||j==num[i].length-1){      //第一行和第一列和最后一列,赋值1
                    num[i][j]=1;
                }else{
                    num[i][j]=num[i-1][j]+num[i-1][j-1];
                    
                }
                System.out.print(num[i][j]+"\t");
                
            }
            System.out.println();
        }