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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

QFBB

中级黑马

  • 黑马币:

  • 帖子:

  • 精华:

需求: 手动输入想打入的螺旋数是几行
例如 2 输出    1    2
                      4    3
       3输出      1     2      3
                     8      9       4
                     7      6      5

以此类推

评分

参与人数 1黑马币 +20 收起 理由
Cloud丶 + 20 很给力!

查看全部评分

10 个回复

倒序浏览
import java.util.Scanner;

public class Test_lou {
        static int count=1;
        static int temp=0;
        public static void main(String[]args) {
                System.out.println("请输入想要的螺旋值:");
                Scanner sc=new Scanner(System.in);
                int n=sc.nextInt();
                int[][]arr=new int[n][n];
                int m=0;                        //记录循环的次数,就是一共有多少圈
                if(n%2==1) {
                        m=(n-1)/2;
                }else {
                        m=n/2-1;
                }
                text(n, arr,m);
                for (int i = 0; i < arr.length; i++) {
                        for (int j = 0; j < arr.length; j++) {
                               
                                System.out.print(arr[i][j]+"\t");
                        }
                        System.out.println();
                }
        }
        private static void text(int n, int[][] arr,int m) {
                                if(m<0)return;
                                int k=temp;                 //每次循环左边角标需要进行递增  第一次[0][0]  [1][1]
                                //int g=n;
                                for(int i=k;i<n;i++) {
                                        arr[k][i]=count++;
                                }
                                for(int i=k+1;i<n;i++) {
                                        arr[i][n-1]=count++;
                                }
                                for(int i=n-2;i>=k;i--) {
                                        arr[n-1][i]=count++;
                                }
                                for(int i=n-2;i>=k+1;i--) {
                                        arr[i][k]=count++;
                                }
                                temp++;
                                text(n-1,arr,m-1);

}
}
回复 使用道具 举报
二维数组,我感觉好强大,老师讲二维数组的时候我就觉得自己挺懵的
回复 使用道具 举报
这个学习下,之前没想出来
回复 使用道具 举报
luyang18 来自手机 中级黑马 2015-12-26 12:57:32
报纸
收藏学习下
回复 使用道具 举报
此关键字是来自语言的艺术意识!
回复 使用道具 举报
chengz 中级黑马 2015-12-26 14:46:01
7#
收藏学习下
回复 使用道具 举报
当时做了这样的一道题,感觉无从下手啊
回复 使用道具 举报
收藏研究下
回复 使用道具 举报
是自己琢磨的么,上课没学这部分,已经忙不过来了。
回复 使用道具 举报
1158147908 来自手机 中级黑马 2015-12-28 07:06:50
11#
原来用的是递归,,果然很厉害
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马