黑马程序员技术交流社区

标题: 关于二维数组递归循环-----打印螺旋数 [打印本页]

作者: QFBB    时间: 2015-12-26 01:00
标题: 关于二维数组递归循环-----打印螺旋数
需求: 手动输入想打入的螺旋数是几行
例如 2 输出    1    2
                      4    3
       3输出      1     2      3
                     8      9       4
                     7      6      5

以此类推


作者: QFBB    时间: 2015-12-26 01:01
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);

}
}

作者: 214652440    时间: 2015-12-26 01:12
二维数组,我感觉好强大,老师讲二维数组的时候我就觉得自己挺懵的
作者: Mr.zhao    时间: 2015-12-26 09:32
这个学习下,之前没想出来
作者: luyang18    时间: 2015-12-26 12:57
收藏学习下
作者: 沐一风    时间: 2015-12-26 13:16
此关键字是来自语言的艺术意识!
作者: chengz    时间: 2015-12-26 14:46
收藏学习下
作者: 一大把手    时间: 2015-12-26 15:54
当时做了这样的一道题,感觉无从下手啊
作者: 呵呵1122    时间: 2015-12-28 00:15
收藏研究下
作者: 愿爱无忧    时间: 2015-12-28 01:41
是自己琢磨的么,上课没学这部分,已经忙不过来了。
作者: 1158147908    时间: 2015-12-28 07:06
原来用的是递归,,果然很厉害




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2