「java数组螺旋」java数组旋转
今天给各位分享java数组螺旋的知识,其中也会对java数组旋转进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、螺旋数组的意思和规律
- 2、用java如何输出如下数组
- 3、Java 怎样把数组里的数旋转N次?比如N是2次,12 34 45 56 67 78就变为45 56 67 78 12 34?
- 4、java二维数组3*3螺旋矩阵实例,请解释下循环的过程
- 5、如何使一个三行三列的数组顺时针旋转90度,使用java语言!非常感谢啊
- 6、如何用JAVA实现螺旋矩阵
螺旋数组的意思和规律
1 2 3 4 5
16 17 18 19 6
15 24 33 20 7
14 23 22 21 8
13 12 11 10 9
这是5阶的螺旋数组,也叫回旋数,代码如下
public class HuiXuanShu {
public static void main(String[] args) {
int[][] a;
HuiXuanShu hxs = new HuiXuanShu();
a = hxs.huixuan(5);
for (int i = 0; i a.length; i++) {
for (int j = 0; j a.length; j++) {
System.out.print(a[i][j] + " ");
}
System.out.println();
}
}
public int[][] huixuan(int n) {
if (n == 1) {
return new int[][]{{1}};
}
if(n == 2){
return new int[][]{{1,2},{4,3}};
}
int[][] result = new int[n][n];
for (int i = 0; i n; i++) {
result[0][i] = i + 1;
}
for (int i = 0; i n; i++) {
result[i][n - 1] = n + i;
}
for (int i = n - 1; i = 0; i--) {
result[n - 1][i] = 3 * n - 2 - i;
}
for (int i = n - 1; i 0; i--) {
result[i][0] = 4 * n - 3 - i;
}
int aaa = 4 * n - 4;
int[][] result1 = huixuan(n - 2);
for (int i = 0; i n - 2; i++) {
for (int j = 0; j n - 2; j++) {
result[i + 1][j + 1] = result1[i][j] + aaa;
}
}
return result;
}
}
用java如何输出如下数组
public class Pmat //螺旋方阵
{
public static void main(String args[])
{
final int SIZE=4;
int mat[][]=new int[SIZE][SIZE];
int i,j,k=0,n,m;
n=SIZE;
m=(n+1)/2;
for(i=0;im;i++)
{
for(j=i;j=n-i-1;j++) //顶边,从左到右,行不变列变
mat[i][j]=++k; //输出1、2、3、4、13、14
for(j=i+1;j=n-i-1;j++) //右边,从上到下,行变列不变
mat[j][n-i-1]=++k; //输出5、6、7、15
for(j=n-i-2;j=i;j--) //底边,从右到左,行不变列变
mat[n-i-1][j]=++k; //输出8、9、10、16
for(j=n-i-2;j=i+1;j--) //左边,从下到上,行变列不变
mat[j][i]=++k; //输出11、12
}
for(i=0;in;i++) //输出二维数组
{
for(j=0;jn;j++)
System.out.print(mat[i][j]+" ");
System.out.println();
}
}
}
Java 怎样把数组里的数旋转N次?比如N是2次,12 34 45 56 67 78就变为45 56 67 78 12 34?
有什么其他的要求么?没有的话想法就是用N%数组的长度,等于你实际循环的次数。0的话就不用动,其他情况比如得出结果是N=2,存储数组是a[]={12,34,45,56,67,78}
int a[]={12,34,45,56,67,78};
int N=2;
int b[]=new int[N];
int i=0;
for(;ia.length-N;i++){
if(iN){
b[i]=a[i];
}
a[i]=a[i+N];
}
for(int j=0;ia.length;i++,j++){
a[i]=b[j];
}
有一定空间的消耗,要是数组大的话不太好
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");
}
}
}
如何使一个三行三列的数组顺时针旋转90度,使用java语言!非常感谢啊
public static void main(String[] args)
{
int[][] numbers={
{1,2,3},
{4,5,6},
{7,8,9}
};
int[][] newnum=new int[3][3];
for(int i=0;i3;i++){
for(int j=0;j3;j++){
newnum[i][j]=numbers[2-j][i];
System.out.println(newnum[i][j]);
}
}
}
如何用JAVA实现螺旋矩阵
import java.io.*;public class RingDemo {
public static void main(String[] args) {
String strIn = "";
System.out.print("请输入矩阵的行列数:");
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader buff = new BufferedReader(input);
try {
strIn = buff.readLine();
} catch (IOException e) {
System.out.println(e.toString());
}
int int1 = Integer.parseInt(strIn);
int n = int1;
System.out.println("这是行列数为" + n + "的螺线型数组:");
int intA = 1; // 初始化
int[][] array = new int[n][n];
int intB;
if (n % 2 != 0) {
intB = n / 2 + 1; // 奇数时i循环次数
} else
intB = n / 2; // 偶数时i循环次数
for (int i = 0; i intB; i++) { // 从外到里循环
// 从左到右横的开始
for (int j = i; j n - i; j++) {
array[i][j] = intA;
intA++;
}
// 从上到下纵
for (int k = i + 1; k n - i; k++) {
array[k][n - i - 1] = intA;
intA++;
}
// 从右到左横
for (int l = n - i - 2; l = i; l--) {
array[n - i - 1][l] = intA;
intA++;
}
// 从下到上纵
for (int m = n - i - 2; m i; m--) {
array[m][i] = intA;
intA++;
}
}
// 输出数组
for (int i = 0; i n; i++) {
for (int j = 0; j n; j++) {
System.out.print(array[i][j] + " ");
}
System.out.println();
} }
}
关于java数组螺旋和java数组旋转的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。