java实现螺旋矩阵的示例(编程螺旋矩阵)

本文目录一览:

java二维数组3*3螺旋矩阵实例,请解释下循环的过程

public class T {

public static void main(String[] args) {

int i,j;

int[][] a = {{1,1,1},{2,2,2},{3,3,3}};

int[][] b = new int[3][3];

System.out.print(“初始矩阵:\n”);

for(i=0;i3;i++) {

for(j=0;j3;j++) {

System.out.print(a[i][j]+”  “);

}

System.out.print(“\n”);

}

System.out.print(“转置矩阵:\n”);

for(i=0;i3;i++) {

for(j=0;j3;j++) {

b[i][j] = a[j][i];

System.out.print(b[i][j]+”  “);

}

System.out.print(“\n”);

}

}

}

java螺旋矩阵求助!

package cn.com.micc.javatwo; //根据实际情况修改

//蜗牛螺旋矩阵 请仔细研究矩阵阶数变化时数据的迁移规律

//上一阶矩阵会”整体”向右上或左下移动

public class AntiClockWiseArray {

public static int[][] getResult(int n) {

int[][] n1 = new int[1][1];

n1[0][0] = 1;

if (n == 1)

return n1;

int[][] result = new int[n][n];

int[][] temp = getResult(n – 1);

if (0 == (n – 1) % 2)

result = LeftDownMove(temp, n – 1); //n-1阶矩阵向左下移动

else

result = RightUpMove(temp, n – 1); //n-1阶矩阵向右上移动

return result;

}

public static int[][] LeftDownMove(int[][] in, int moment) {

int temp = moment * moment;

int nums = moment * 2 + 1;

int[][] out = new int[moment + 1][moment + 1];

//新矩阵补入上一阶矩阵的值

for (int i = 0; i moment; ++i)

for (int j = 0; j moment; ++j)

out[i + 1][j] = in[i][j];

//两个循环添加新矩阵新值

for (int k = 0; k moment + 1; ++k)

out[0][k] = temp + nums – k;

for (int l = 1; l moment + 1; ++l)

out[l][moment] = temp + nums – moment – l;

return out;

}

public static int[][] RightUpMove(int[][] in, int moment) {

int temp = moment * moment;

int nums = moment * 2 + 1;

int[][] out = new int[moment + 1][moment + 1];

//新矩阵补入上一阶矩阵的值

for (int i = 0; i moment; ++i)

for (int j = 0; j moment; ++j)

out[i][j + 1] = in[i][j];

//两个循环添加新矩阵新值

for (int k = 0; k moment + 1; ++k)

out[k][0] = temp + 1 + k;

for (int l = 1; l moment + 1; ++l)

out[moment][l] = temp + moment + 1 + l;

return out;

}

public static void printArray(int[][] temp, int n) {

//格式化打印矩阵

for(int i = 0; i n; ++i)

{

for(int j = 0; j n; ++j)

System.out.printf(“%5d”, temp[i][j]);

System.out.println();

}

}

public static void main(String[] args) {

printArray(getResult(6), 6); //输入阶数

}

}

output:

10阶

82 81 80 79 78 77 76 75 74 73

83 50 49 48 47 46 45 44 43 72

84 51 26 25 24 23 22 21 42 71

85 52 27 10 9 8 7 20 41 70

86 53 28 11 2 1 6 19 40 69

87 54 29 12 3 4 5 18 39 68

88 55 30 13 14 15 16 17 38 67

89 56 31 32 33 34 35 36 37 66

90 57 58 59 60 61 62 63 64 65

91 92 93 94 95 96 97 98 99100

怎么编写JAVA螺旋矩阵?

按照你的要求用Java编写的螺旋矩阵程序如下:

public class N {

public static void main(String[] args) {

final int N=4;

int a[][]=new int[N][N];

int num=1;

int i=0,j=0,m=0;

if(N%2==0)

m=N/2;

else

m=N/2+1;

for(i=0;i=m-1;i++){

for(j=i;j=N-i-1;j++){

a[i][j]=num;

num++;

}

for(j=i+1;j=N-i-1;j++) {

a[j][N-i-1]=num;

num++;

}

for(j=N-i-2;j=i;j–){

a[N-i-1][j]=num;

num++;

}

for(j=N-i-2;j=i+1;j–){

a[j][i]=num;

num++;

}

}

for(i=0;iN;i++){

for(j=0;jN;j++){

System.out.print(String.format(“%3d”,a[i][j]));

}

System.out.println();

}

}

}

运行结果:

1 2 3 4

12 13 14 5

11 16 15 6

10 9 8 7

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/242832.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 12:52
下一篇 2024-12-12 12:52

相关推荐

  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Python将矩阵存为CSV文件

    CSV文件是一种通用的文件格式,在统计学和计算机科学中非常常见,一些数据分析工具如Microsoft Excel,Google Sheets等都支持读取CSV文件。Python内置…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29

发表回复

登录后才能评论