A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© panpanpan138 中级黑马   /  2015-10-2 10:35  /  413 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
        需求:打印如下图形
                   1   2   3   4   5
                   16 17 18 19 6
                   15 24 25 20 7
                   14 23 22 21 8
                   13 12 11 10 9

        思路:1,分析矩形,得出数据输出的规律
                     规律是先从左往右输出,然后从上往下,从右往左,从下往上
                         根据矩形的边长进行循环
                         将整个矩形的数据用一个二维数组来进行存储
                  2,分析第一次循环:
                     A:从左往右
                                行不变,列变
                         B: 从上往下
                                行变,列不变
                         c:从右往左
                                行不变,列变
                         D:从下往上
                                行变,列不变
*/
import java.util.Scanner;
class Juxing
{
        public static void main(String[] args)
        {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入矩形的边长:");
                int size = sc.nextInt();
                int[][] arr = new int[size][size];
                int n = size;
                int m = (n+1)/2;
                int k = 0;
                int i,j;
                for(i=0;i<m;i++){//外循环控制循环的轮数
                        for(j=i;j<=n-i-1;j++){
                                arr[i][j] = ++k;//从左往右输出数据
                        }
                        for(j=i+1;j<=n-i-1;j++){
                                arr[j][n-i-1] = ++k;//从上到下输出数据
                        }
                        for(j=n-i-2;j>=i;j--){//从右往左输出数据
                                arr[n-i-1][j] = ++k;
                        }
                        for(j=n-i-2;j>=i+1;j--){//从下往上输出数据
                                arr[j][i] = ++k;
                        }
                }
                //打印二维数组
                for(i=0;i<n;i++){
                        for(j=0;j<n;j++){
                                System.out.print(arr[i][j]+"\t");
                        }
                        System.out.println();
                }
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马