从键盘输入一个整数(1~20)
则以该数字为矩阵的大小,把 1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。例如:
输入数字 2,则程序输出:
1 2
4 3
输入数字 3,则程序输出:
1 2 3
8 9 4
7 6 5
输入数字 4, 则程序输出:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7


package Question20_29;
import java.util.Scanner;
public class Question25 {
public static void print(int[][] array) {
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
System.out.printf("%4d",array[i][j]);
}
System.out.println();
}
}
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
48
int array[][]=new int[n][n];
int startIndex=0,endIndex=n-1,count=1,e=0;
while (e<=n/2) {
for (int i = startIndex; i <= endIndex; i++) {
array[e][i]=count++;
}
for (int i = startIndex+1; i <= endIndex; i++) {
array[i][n-1-e]=count++;
}
for (int i = endIndex-1; i>=startIndex; i--) {
array[n-1-e][i]=count++;
}
for (int i = endIndex-1; i>startIndex; i--) {
array[i][e]=count++;
}
startIndex++;
endIndex--;
e++;
}
print(array);
}
}

运行结果:
输入一个整数:4
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

整体思路: (外圈实现:

  1. 从(左->右)填充第一行
    2.从(上->下)填充右侧一列
    49
    3.从(右->左)填充最后一行
    4.从(下->上)填充左侧一列
public class Demo08_two {
public static void show(int[][] m) {
for (int[] x : m) {
for (int y : x) {
System.out.print(y + "\t");
}
System.out.println("");
}
}
public static void helix(int n, int b, int[][] a) {
int i;
int j;
int k;
for (i = 0; i < n / 2; i++) {
for (j = i; j < n - i; j++)
/* 四个循环按不同的方向进行 */
a[i][j] = ++b;
for (k = i + 1, j--; k < n - i; k++)
a[k][j] = ++b;
for (j = --k, j--; j >= i; j--)
a[k][j] = ++b;
for (k--; k > i; k--)
a[k][i] = ++b;
}
if (n % 2 != 0) /* 如果是单数的话,要加上最大的那个数放在中间 */
a[i][i] = ++b;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int i, j, k, n, b = 0;
System.out.print("输入一个整数:");
n = scan.nextInt();
int[][] a = new int[n][n];
helix(n, b, a);
show(a);
}
}

运行结果:
输入一个整数:4
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

java实现顺时针螺旋填入相关推荐

  1. Java 实现顺时针螺旋二维数组输出

    看到一道有点意思的逻辑算法题,便着手实现一下.打印 N*N顺时针螺旋数组,规律如下: // 1 2 3 4 5 // 16 17 18 19 6 // 15 24 25 20 7 // 14 23 2 ...

  2. java 答题卡_试题六(共15分) 阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某咖啡 - 赏学吧...

    试题六(共15分) 阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内. [说明] 某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用.咖 ...

  3. java答题格式,阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】现欲实现一个图像浏览 - 赏学吧...

    阅读下列说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内. [说明] 现欲实现一个图像浏览系统,要求该系统能够显示BMP.JPEG和GIF三种格式的文件,并且能够在Windows和L ...

  4. java emptyqueueexception,阅读以下说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。说明 类Queue表示队列,类中的 - 赏学吧...

    阅读以下说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内. 说明 类Queue表示队列,类中的方法如下表所示. 类Node表示队列中的元素:类EmptyQueueException 给出 ...

  5. java绘图 point_阅读以下说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】 某绘图系统存在Point、 - 赏学吧...

    阅读以下说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内. [说明] 某绘图系统存在Point.Line.Square三种图元,它们具有Shape接口,图元的类图关系如图6-1所示.现要 ...

  6. 把1,2,3…n*n 的数字按照顺时针螺旋的形式填入数字矩阵

    从键盘输入一个整数(1~20) 则以该数字为矩阵的大小,把1,2,3-n*n 的数字按照顺时针螺旋的形式填入其中.例如: 输入数字2,则程序输出: 1 2 4 3 输入数字3,则程序输出: 1 2 3 ...

  7. 所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。

    所谓"螺旋方阵",是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里.本题要求构造这样的螺旋方阵. 这是最基本的思路 #inclu ...

  8. 螺旋方阵 螺旋方阵题目描述所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。

    所谓"螺旋方阵",是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里.本题要求构造这样的螺旋方阵. 输入 输入在一行中给出一个正整 ...

  9. Java黑皮书课后题第8章:**8.14(探讨矩阵)编写程序,提示用户输入一个方阵的长度,随机地在矩阵中填入0和1,打印这个矩阵,然后找出整行、整列或者对角线都是1或0的行、列和对角线

    **8.14(探讨矩阵)编写程序,提示用户输入一个方阵的长度,随机地在矩阵中填入0和1,打印这个矩阵,然后找出整行.整列或者对角线都是1或0的行.列和对角线 题目 题目描述与运行示例 破题 代码 题目 ...

最新文章

  1. Mybatis+Spring SqlSessionTemplate注入学习--1
  2. python压缩与解压缩
  3. 最新技术前沿与产业风向标来了,百度研究院发布2021年十大趋势
  4. 9 10次C语言上机作业,C语言第五次上机作业参考答案
  5. HTML5语言教程:渐进使用HTML5语言识别
  6. 怎么查看docker是否启动_怎么查看自己的手机是否支持北斗导航系统
  7. eureka之EurekaClientConfig的作用
  8. python函数返回none_Python 函数默认返回None的原因
  9. SharePoint 创建 Lookup 类型的Site Column解决跨站问题
  10. MFC 教程【6_应用程序的退出 】
  11. plc 上位机编译算法_基于西门子PLC的Socket通信深度剖析
  12. python缩进的描述_Python编程思想(2):Python主要特性、命名规则与代码缩进
  13. App开发流程之图像处理工具类
  14. 什么是数据可视化?hightopo数据可视化助力企业数字化
  15. python爬取大众点评数据_小试Python——爬虫抓取大众点评上的数据
  16. RGB配色表,CMYK配色表
  17. 计算机 蓝牙鼠标卡顿,win系统蓝牙鼠标经常出现卡顿的解决方法
  18. WordPress丸子小程序从零到一搭建小程序[小程序配置]
  19. OpenGL ES 实现瘦脸大眼效果
  20. 使用idea打包web项目为war

热门文章

  1. notepad++ 同时搜索多个关键字
  2. 主板电容损坏导致台式机开机风扇转无显示信号输出
  3. 基于PHP和mysql的简单学生成绩管理系统
  4. mt6762/mt6765平台i2c驱动能力修改与波形优化
  5. mysql获取后两位_Mysql 截取保留小数点后两位内容
  6. 295-光纤数据收发 隔离卡 加速计算卡 基于 Kintex-7 XC7K325T的半高PCIe x4双路万兆光纤收发卡
  7. 梦幻西游手游微信号登陆不上服务器,梦幻西游手游为什么进不去 进不去登陆不上解决方法...
  8. 将安卓手机屏幕内容投射到电脑屏幕上
  9. 基于VCP虚拟串口的Rosserial接口教程
  10. html导航栏怎么加点,点靓网页的10种导航菜单设计