java 面试小题积累<平面图形问题>

3

7

2

4

6

8

1

5

9

  平面图形 :打印实现M

1Num=9, int height=num/2+1, width=num;

2yheight-10再到height-1变化

package it.xiehe.Demo;

public class Demo03 {
    /*
     * 打印如下图所示图形(平面图形题) 
     *   3   7
     *  2 4 6 8
     * 1   5   9
     */
    public static void main(String[] args) {
        int num = 9;// 定义要打印的数字个数
        int height = num / 4 + 1;//九个数字分成四条边
        int weidth = num;
        int arr[][] = new int[height][weidth];// 定义二维数组存储图形
        int x = height-1;
        int y = 0;
        boolean flage = false;// 加减标志
        // 1、赋值
        for (int i = 1; i <= num; i++) {
            arr[x][y] = i;
            y++;
            if (!flage) {
                x--;
            }
            if (flage) {
                x++;
            }
            if (x < 0) {
                flage = true;
                x = x + 2;
            }
            if (x > height-1) {
                flage = false;
                x = x - 2;
            }
        }
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[0].length; j++) {
                if (arr[i][j] == 0) {
                    System.out.print(" ");
                } else {
                    System.out.print(arr[i][j]);
                }
            }
            System.out.println();
        }
    }
}
原文地址:https://www.cnblogs.com/he-shao/p/5359394.html