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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小骆驼 于 2015-6-25 20:52 编辑

/*
例如:
        输出 n=5 的螺旋方阵
        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        

        通过定义一个二维数组来实现
*/
import java.util.*;
class LuoXuanFangZhen
{
        public static void main(String[] args)
        {
                Scanner in=new Scanner(System.in);
                int n=in.nextInt();//键盘录入,根据自己打印的数,来输出一个指定的螺旋方阵
                int s = 0;//由于输出的是一次递增的数所以定义一个变量,++来自增
                int arr[][]= new int[n][n];//把每一行看成一个数组,一共有n个数组,,,注意数组角标是从0开始的,不是从一开始的,不要搞乱了
                for (int x = 0 ;x <n-1 ;x++ )
                {
                        for (int a = x ;a<n-x ;a++ )//当此for循环是将方阵1.2.3.4.5 .   17.18.19.    25存入数组中,存入数组中
                        {
                                arr[x][a] = ++s;//
                        }
                        for (int a =x+1 ; a<n-x ;a++ )//此循环是 将6.7.8.9.     20.21存入数组
                        {
                                arr[a][n-1-x] = ++s;
                        }
                        for (int a = n-x-2; a>=x ;a-- )//此循环是将13 12 11 10.   23 22存入数组
                        {
                                arr[n-x-1][a]= ++s;
                        }
                        for (int a =n-2-x;a>=x+1 ;a-- )//此循环是将14  15  16  24 存入数组
                        {
                                arr[a][x] = ++s;
                        }
                }
                for (int a = 0  ;a<n ;a++ )//此for循环遍历数组,将数组中的对应的数遍历并打印出来.
                {
                        for (int b =0;b<n ;b++ )
                        {
                                System.out.print(arr[a]+ "\t");
                        }
                                System.out.println();
                }
        }
}

12 个回复

倒序浏览
我只有开头的思路没有怎么用代码的体现,谢谢你的分享
回复 使用道具 举报
原来是数组啊,悟了,顿悟
回复 使用道具 举报
学习了、、、、、
回复 使用道具 举报
不写注释不是一个好习惯哦...
回复 使用道具 举报
果断收藏
回复 使用道具 举报
heima591046495 发表于 2015-6-25 19:57
不写注释不是一个好习惯哦...

我的表达能力不是很好,现在加上了一点注释
回复 使用道具 举报
领悟了,谢谢!
回复 使用道具 举报
受教了,.....厉害,,,,,
回复 使用道具 举报
已经收藏  这东西烦了我好久..
回复 使用道具 举报
学习了,厉害
回复 使用道具 举报
腻害啊~~~
回复 使用道具 举报
腻害啊~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马