给出一个二维数组,并且按照如下格式打印出来。例如:
给数组“1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16”:
打印结果如下:
1 12 11 10
2 13 16 9
3 14 15 8
4 5 6 7求实现代码~~~谢谢各位
给数组“1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16”:
打印结果如下:
1 12 11 10
2 13 16 9
3 14 15 8
4 5 6 7求实现代码~~~谢谢各位
System.out.println("2 13 16 9");
System.out.println("3 14 15 8");
System.out.println("4 5 6 7");
http://www.javaeye.com/topic/400922
import java.util.Scanner;
public class Rotate2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入方阵的阶数:");
int num = input.nextInt();
if(num < 1) {
System.out.println("请输入合适的方阵阶数!");
return;
}
int count = 1;
int[][] arr = new int[num][num];
int i=0,j=0;
//整个图形分为从外到内的一些正方形,如果是偶数的话,
//正好合适,若是奇数的话,则最里面的一个正方形比较特殊,
//只有一个数字组成,所以循环结束后特殊处理。下面的里层
//的四个for循环,分别控制每个正方形的四条边的数字的设
//置,按照逆时针的顺序
for(int k=0; k<num/2; k++) {
for(i=k; i<arr.length-k; i++) {
arr[i][j] = count++;
}
for(j++,i--; j<arr.length-k; j++) {
arr[i][j] = count++;
}
for(i--,j--; i>=k; i--) {
arr[i][j] = count++;
}
for(i++,j--; j>k; j--) {
arr[i][j] = count++;
}
j++;
}
//如果为奇数,则设置中间位置的值
if(num % 2 == 1) {
arr[num / 2][num / 2] = count;
}
//打印数组
//length为该数组的最大元素的长度,也就是输出的数字的宽度
int length = String.valueOf(count).length();
for(i=0; i<arr.length; i++) {
for(j=0; j<arr[i].length; j++) {
System.out.format("%" + length + "d ", arr[i][j]);
}
System.out.println();
}
}
}
1
25
34
还是
1
2
345
/**
* 往下面开始
*/
private final static int DOWN_FIRST = 0;
/**
* 往右边开始
*/
private final static int RIGHT_FIRST = 1; public static void main(String[] args) { final int N = 4;
final int DIRECT = DOWN_FIRST; int[][] matrix = new int[N][N];
int[] rc = { 0, 0 };
int t = (N << 1) - 1, c = 0, num = 1;
while(c < t) {
int p = (c + 1) >> 1;
while(p++ < N) {
matrix[rc[0]][rc[1]] = num++;
if(p == N) {
c++;
}
rc[(c & 1) ^ DIRECT] += 1 - (c & 2);
}
}
print(matrix);
} private static void print(int[][] matrix) {
for(int i = 0; i < matrix.length; i++) {
for(int j = 0; j < matrix[i].length; j++) {
if(j > 0) {
System.out.print(' ');
}
System.out.printf("%2d", matrix[i][j]);
}
System.out.println();
}
}
}