算法学习——递推之杨辉三角

算法描述

杨辉三角算法

算法思路

  1. 将杨辉三角当作一个二维数组,开头和末尾都为1数组

  2. 第一行和第二行已经被前面的1给赋值了,因此咱们直接从第三行开始赋值,a[2][1]开始,由于下标是从0开始的,a[2][1] = a[1][0]+a[1][1],也就是等于2,依次递推下去code

  3. 打印(for循环),每打印出一行则换一行,System.out.printlnblog

个人打印处理没有处理好,若是数组有两位数,打印出来就不是很美观for循环

算法实现

Scanner scanner = new Scanner(System.in);
    int n = scanner.nextInt();
    int[][] a = new int [n][n];
    
    //初始化条件,头部和尾部都是为1
    for(int i=0;i<n;i++){
        a[i][0]=1;
        a[i][i]=1;
    }
    
    //第3行开始,下标为2
    for(int i=2;i<n;i++){
        //列从第二个开始,到倒数第二个,下标为1到n-1
        for(int j=1;j<n-1;j++){
            a[i][j] = a[i-1][j-1]+a[i-1][j];
        }
    }
    
    for(int i=0;i<n;i++){
        
        //画开头空格
        for(int m=n-i-1;m>0;m--){
            System.out.print(" ");
        }
        
        for(int j=0;j<=i;j++){
            System.out.print(a[i][j]+" ");
        }
    
        System.out.println(""); //一行结束换行
        }

结果

相关文章
相关标签/搜索