打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。
来源:互联网 发布:快压mac版 编辑:程序博客网 时间:2024/04/29 03:32
import java.util.Scanner;public class Test8 { /** * 8、写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 * 如: n = 4 则打印: * 1 2 3 4 * 12 13 14 5 * 11 16 15 6 * 10 9 8 7 */ /** * 思路: * 1.等长的二维数组,最大的数据是n*n * 2.先打印最外面一圈 * 3.根据i,j变化,进入第二圈,依次循环 * 编程过程: * 按照以上思路,先将最外层添加完毕,再修改每行,每列的截止条件 */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); //键盘录入行数,进行打印 System.out.println("请输入行数: "); int row = sc.nextInt(); int col = row; //行,列相等,为思路明确,在此同样定义列 int num = 1; //要添加的数据,初始化为1 int i = 0; //i代表行初始化为0 int j = 0; //j代表列初始化为0 int arr[][] = new int[row][col]; //定义二维数组 while(num <= row * col){ //循环的条件为num <= 最大值 /** * ---------------------> * 每一行 从左--->右 添加数据 * 第一个元素开始j = i,此行最后一个元素的条件j < col-i */ for ( j = i;j < col-i;j++){ arr[i][j] = num++; } /** * 每一列 从上---->下 添加数据 * 在此之前,调整行列的标识变化 * 列减1 j--; 行加1 i++; * 数据加到 i < j+1 为止 */ j--; i++; for(; i < j+1 ;i++){ arr[i][j] = num++; } /** * 每一行,从右----->左 添加数据 * 在此之前,调整行列的标识变化 * 行减1 i--; 列减1 j--; * 数据加到j >=row-1-i 为止 */ i--; j--; for(;j >=row-1-i;j--){ arr[i][j] = num++; } /** * 每一列,从下----->上 添加数据 * 在此之前,调整行列的标识变化 * 列加1 j++; 行减1 i--; */ j++; i--; for(;i >= j+1;i--){ arr[i][j] = num++; } /* * 这一圈循环完成 * 为下一次里圈循环做准备 * 在此之前,调整行列的标识变化 * 行加1 i++;列加1 j++; */ i++; j++; } //打印数组 printArray(arr); } /** * 自定义二维数组打印方法printArray(int[][] arr) * for 循环嵌套打印 * 行i < arr.length * 列j < arr[i].length * @param arr */ public static void printArray(int[][] arr) { for(int i = 0;i < arr.length;i++){ for(int j = 0;j < arr[i].length;j++){ System.out.print(arr[i][j]+"\t"); } System.out.println(); } }}
0 0
- 打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。
- 写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 如: n = 4 则打印:
- 写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 如: n = 4 则打印:
- 环绕打印1开始的自然数---螺旋
- 要求从键盘输入一个二维数组,然后将该二维数组按从大到小的顺序排列。
- 菜鸟柳(二维数组练习)--根据用户输入的数字输出如下格式:等长、数字从1递增1的螺旋二维数组的
- 一个二维数组以顺时针螺旋的方式打印出来
- 螺旋方阵的实现
- 向内的螺旋矩阵(C语言)
- 黑马程序员——螺旋方阵的打印
- 5*5的螺旋方阵
- 黑马程序员——用二维数组打印螺旋方阵和螺旋矩阵
- 打印一个N*N的方阵,N为每边字符的个数,要求最外层为“X”,第二层为“Y”,从第三层起每层依次打印数字0,1,2,3,...
- 螺旋打印二维数组
- 螺旋打印二维数组
- 实现一个"可变二维数组",这个二维数组的行数要求用户从键盘输入,每行的元素个数仍由用户从键盘输入. //数组元素值用户可以自定义.最后把二维数组打印出来.不要忘记释放数组内存. /*void main
- 由里向外的螺旋数组
- 由外向里的螺旋数组
- 从无到有系列之Hive-入门操作及简单应用02
- Java微信公众平台开发【番外篇】(七)——公众平台测试帐号的申请
- Tcp上传文件 服务器端
- Android开发之WebView和JS交互详解
- Windows下使用code::blocks开发cocos2dx
- 打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。
- 获取iPhone iPad UDID的方法
- cocos2dx中CC_CALLBACK_N的理解
- MongoDB使用小结:一些常用操作分享
- Web报表工具FineReport二次开发JS之字符串
- HIBERNATE与 MYBATIS的对比
- 以platform总线方式注册杂项设备驱动
- 金额转换,阿拉伯数字转换成中国传统形式
- Java微信公众平台开发(八)——多媒体消息回复