java编程题: 怎么像这样打印二维数组啊
写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。如:n=4则打印:12341213145111615610987...
写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 如: n = 4 则打印:
1
2
3
4
12
13
14
5
11
16
15
6
10
9
8
7 展开
1
2
3
4
12
13
14
5
11
16
15
6
10
9
8
7 展开
4个回答
展开全部
package com;
public class Rotating {
/**
* @param args
*/竖樱银
public static void main(String[] args) {
// TODO Auto-generated method stub
Rotating x=new Rotating(6);
x.output();
}
int width=4;/余宴/只能是偶颂凳数
Integer[][] Zone;
Rotating(int p){
this.width=p%2==1?p-1:p;
this.Zone=new Integer[this.width][this.width];
this.init(0, 1);
}
private void init(int roll,int start){
int wid=this.width-2*roll;
System.out.println("kaishi start="+start+" wid="+wid);
if(wid==0)return;
for(int i=0;i<wid-1;i++){
this.Zone[roll][i+roll]=start;
System.out.println("start="+start);
start++;
}
for(int i=0;i<wid-1;i++){
this.Zone[i+roll][this.width-1-roll]=start;
System.out.println("start="+start);
start++;
}
for(int i=0;i<wid-1;i++){
this.Zone[this.width-1-roll][this.width-1-roll-i]=start;
System.out.println("start="+start);
start++;
}
for(int i=0;i<wid-1;i++){
this.Zone[this.width-1-roll-i][roll]=start;
System.out.println("start="+start);
start++;
}
init(++roll,start);
}
void output(){
for(int i=0;i<this.width;i++){
for(int j=0;j<this.width;j++){
System.out.print(" "+this.Zone[i][j]);
}
System.out.println();
}
}
}
public class Rotating {
/**
* @param args
*/竖樱银
public static void main(String[] args) {
// TODO Auto-generated method stub
Rotating x=new Rotating(6);
x.output();
}
int width=4;/余宴/只能是偶颂凳数
Integer[][] Zone;
Rotating(int p){
this.width=p%2==1?p-1:p;
this.Zone=new Integer[this.width][this.width];
this.init(0, 1);
}
private void init(int roll,int start){
int wid=this.width-2*roll;
System.out.println("kaishi start="+start+" wid="+wid);
if(wid==0)return;
for(int i=0;i<wid-1;i++){
this.Zone[roll][i+roll]=start;
System.out.println("start="+start);
start++;
}
for(int i=0;i<wid-1;i++){
this.Zone[i+roll][this.width-1-roll]=start;
System.out.println("start="+start);
start++;
}
for(int i=0;i<wid-1;i++){
this.Zone[this.width-1-roll][this.width-1-roll-i]=start;
System.out.println("start="+start);
start++;
}
for(int i=0;i<wid-1;i++){
this.Zone[this.width-1-roll-i][roll]=start;
System.out.println("start="+start);
start++;
}
init(++roll,start);
}
void output(){
for(int i=0;i<this.width;i++){
for(int j=0;j<this.width;j++){
System.out.print(" "+this.Zone[i][j]);
}
System.out.println();
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.util.Scanner;
public class Clockwise{
public static void main(String[] args) {
System.out.println("请输入您需要打印的循环序列的行数(默认正方形输出):");
Scanner sc = new Scanner(System.in);
int row = sc.nextInt();
int[][] a = new int[row][row];
int count = 1,i,j;
for(j = 0;j<row/2;j++) {
for(i=0;i<row-1-2*j;i++) {
a[j][i+j] = count++;
}
for(i=0;i<row-1-2*j;i++) {
a[i+j][row-j-1] = count++;
}
for(i=row-1-j;i>j;i--) {
a[row-1-j][i] = count++;
}
for(i=row-1-j;i>j;i--) {
a[i][j] = count++;
}
}
if(row % 2==1){
a[row/2][row/2]=row*row;
}
for(int c = 0;c<row;c++){
for(int b = 0;b<row;b++){
System.out.print(" "派散+a[c][b]+" ");
}
System.out.println();
}
}
}
刚接触java写了一个能循尘纤氏环但是不能对齐的,希望哪个大佬可以帮忙解竖困决一下,让每个数都能够对齐
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class Rotating {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Rotating x=new Rotating(11);
x.output();
}
int width=4;
Integer[][] Zone;
Rotating(int p){
this.width= p;
this.Zone=new Integer[this.width][this.width];
this.init(0, 1);
}
private void init(int roll,int start){
int wid=this.width-2*roll;
System.out.println("告帆派kaishi start="+start+" wid="+wid);
if(wid<=0)
return;
if(wid==1){
this.Zone[roll][roll]=start;
System.out.println("start="+start);
}else{
for(int i=0;i<wid-1;i++){
this.Zone[roll][i+roll]=start;
System.out.println("start="+start);
start++;
}
}
for(int i=0;i<wid-1;i++){
this.Zone[i+roll][this.width-1-roll]=start;
System.out.println("start="轿升+start);
start++;
}
for(int i=0;i<袜贺wid-1;i++){
this.Zone[this.width-1-roll][this.width-1-roll-i]=start;
System.out.println("start="+start);
start++;
}
for(int i=0;i<wid-1;i++){
this.Zone[this.width-1-roll-i][roll]=start;
System.out.println("start="+start);
start++;
}
init(++roll,start);
}
void output(){
for(int i=0;i<this.width;i++){
for(int j=0;j<this.width;j++){
System.out.print("\t"+this.Zone[i][j]);
}
System.out.println();
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Rotating x=new Rotating(11);
x.output();
}
int width=4;
Integer[][] Zone;
Rotating(int p){
this.width= p;
this.Zone=new Integer[this.width][this.width];
this.init(0, 1);
}
private void init(int roll,int start){
int wid=this.width-2*roll;
System.out.println("告帆派kaishi start="+start+" wid="+wid);
if(wid<=0)
return;
if(wid==1){
this.Zone[roll][roll]=start;
System.out.println("start="+start);
}else{
for(int i=0;i<wid-1;i++){
this.Zone[roll][i+roll]=start;
System.out.println("start="+start);
start++;
}
}
for(int i=0;i<wid-1;i++){
this.Zone[i+roll][this.width-1-roll]=start;
System.out.println("start="轿升+start);
start++;
}
for(int i=0;i<袜贺wid-1;i++){
this.Zone[this.width-1-roll][this.width-1-roll-i]=start;
System.out.println("start="+start);
start++;
}
for(int i=0;i<wid-1;i++){
this.Zone[this.width-1-roll-i][roll]=start;
System.out.println("start="+start);
start++;
}
init(++roll,start);
}
void output(){
for(int i=0;i<this.width;i++){
for(int j=0;j<this.width;j++){
System.out.print("\t"+this.Zone[i][j]);
}
System.out.println();
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Java中打印二维数弯森陪组可以用一个二维数组来表示,然后用两次循环,遍历数组,分别输出每一个元素即春灶可打印二维数组。埋蠢具体打印方法由于题目中没有详细给出,故不作详细讲解。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询