A1033. 绘制图形

问题描述

  找出下面给出图形的规律,给出n,画一个n行的对应图形。
  1 2 3 4
  12 13 14 5
  11 16 15 6
  10 9 8 7
输入格式
  输入包含一个数n。1<=n<=30
输出格式
  输出与上图类似n行的图形。
样例输入
4
样例输出
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
package www.tsinsen.com;

import java.util.Scanner;

public class A1033 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan=new Scanner(System.in);
        int n=scan.nextInt();
        int[][] arr=new int[n][n];
        int count=0,i=0,j=n-1;
        int k;
        while(count<n*n) {
            //从左往右
            for(k=i;k<=j;k++) {arr[i][k]=++count;}
            //从上往下
            for(k=i+1;k<=j;k++) {arr[k][j]=++count;}
            //从右往左
            for(k=j-1;k>=i;k--) {arr[j][k]=++count;}
            //从下往上
            for(k=j-1;k>i;k--) {arr[k][i]=++count;}
            i++;
            j--;
        }
        for(int l=0;l<n;l++) {
            for(int m=0;m<n;m++) {
                System.out.print(arr[l][m]+" ");
            }
            System.out.println();
        }
    }

}

 

 

posted @ 2018-02-06 17:40  henu小白  阅读(173)  评论(0编辑  收藏  举报