java代码实现魔方阵 运用java二维数组打印魔方阵( 二 )


}else{
System.out.print(" ");
}
关于Java基础编程的一个问题--回形魔方阵//完成java代码实现魔方阵了,请楼主测试吧~~~ 这个就是模拟矩阵旋转java代码实现魔方阵的问题
public class TTT {
public static void main(String[] args){
//RC就是行列数,试试5 6 7 10等数值,都能正确输出,呵呵~~
int rc = 4;
int[][] dat = new int[rc][rc];
int count = 0;
//初始化数据
for(int i=0; irc; i++){
for(int j=0; jrc; j++){
dat[i][j]=-1;
}
}
while(notFinished(dat,rc)){
for(int i=0; irc; i++){
int jj = -1;//存放未被填充数据java代码实现魔方阵的行
for(int j=0; jrc; j++){
if(dat[j][i]==-1){
jj = j;break;
}
}
//找到java代码实现魔方阵了未填充java代码实现魔方阵的行在这里处理
if(jj-1){
while(ircdat[jj][i]==-1){
dat[jj][i++]=++count;
}
dat = rotate(dat,rc);
}
}
}
//这里是修正起始位置的
if(rc%2==1){
for(int i=0; i3; i++)
dat = rotate(dat,rc);
}
else{
dat = rotate(dat,rc);
}
//打印结果
for(int i=0; irc; i++){
for(int j=0; jrc; j++){
System.out.print(dat[i][j]+"\t");
}
System.out.println("\n");
}
}
//对临时结果做逆时针90度旋转
private static int[][] rotate(int[][] dat,int rc){
int[][] tmp = new int[rc][rc];
for(int i=0; irc; i++){
for(int j=0; jrc; j++){
int t = dat[i][j];
tmp[rc-j-1][i]=t;
}
}
return tmp;
}
private static boolean notFinished(int[][] dat,int rc) {
for(int i=0; irc; i++){
for(int j=0; jrc; j++)
if(dat[i][j]==-1)
return true;
}
return false;
}
}
【java代码实现魔方阵 运用java二维数组打印魔方阵】java代码实现魔方阵的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于运用java二维数组打印魔方阵、java代码实现魔方阵的信息别忘了在本站进行查找喔 。

推荐阅读