目 录CONTENT

文章目录

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

Stars-one
2018-11-06 / 0 评论 / 0 点赞 / 3 阅读 / 0 字

算法描述

杨辉三角

算法思路

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

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

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

我的打印处理没有处理好,如果数组有两位数,打印出来就不是很美观

算法实现

    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(""); //一行结束换行
        }

结果

0

评论区