JAVA基础--控制台打印杨辉三角

题目:打印杨辉三角

分析:将其看作是二维数组遍历而来的,空白部分设置为相同的值,打印时输出空格即可。首先定义所需要长度的二维数组(即杨辉三角的层数),先给边缘的部分赋值,再根据规律,给中间对应位置的元素赋值。

代码如下:

 1 public static void YH(int h){
 2         int[][] arr = new int[h][2*h-1];//定义二维数组
 3         for (int i = 0; i < arr.length; i++) {//遍历多少行,i+1为行数
 4             for (int j = 0; j < arr[i].length; j++) {//遍历每行的元素,j为元素索引
 5                 
 6                 //打印边缘的1
 7                 if(j==h-1-i||j==h-1+i){
 8                 arr[i][j] = 1;
 9                 }
10                 
11                 //根据杨辉三角特性打印中间的数
12                 if(i>1&j>1&j<2*h-2){
13                     arr[i][j] = arr[i-1][j-1]+arr[i-1][j+1];
14                 }
15             }
16         }
17         show(arr);
18     }

遍历时,遇到没有赋值的元素,就输出空格。方法如下:

//遍历二维数组(杨辉三角)
    public static void show(int[][] arr){
        for (int[] is : arr) {
            for (int i : is) {
                if(i==0){
                    System.out.print("  "+" ");
                    continue;
                }
                
                System.out.print("  "+i+" ");
            }
            System.out.println();
        }
    }

测试:

public static void main(String[] args) {
        // TODO Auto-generated method stub
        YH(8);
    }

运行结果:

猜你喜欢

转载自www.cnblogs.com/yhj-notes/p/9296400.html