本帖最后由 jiangweiwei001 于 2015-8-8 11:34 编辑
/*
输入n。m 输出一个n行m列的矩阵
数值为1——n*m,呈现出从左上到右下螺旋型输出
例如输入:4 5
输出
1 2 3 4 5
14 15 16 17 6
13 20 19 18 7
12 11 10 9 8
*/
import java.util.Scanner;
class Screw
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);//输入。
int m = sc.nextInt();
int n = sc.nextInt();
operation(m,n);//调用函数
}
private static void operation(int m,int n){
int k = 0;
int [][] a = new int[m][n];
for(int i = 0;i < m;i++){
//顶层,从左到右。行不变列变,m不变n变。
for(int j = i ; j <= n - i - 1 ; j++){
a[j] = ++k;
}
//右测,从上到下,列不变行变。n不变m变
for(int j = i + 1;j <= m - i - 1 ; j++){
a[j][n - i - 1] = ++k;
}
//底端,从右到左,行不变列变,m不变n变
for(int j = n - i - 2 ; j >= i ;j--){
a[m - i - 1][j] = ++k;
}
//左端,从下往上,列不变行变。n不变m变
for(int j = m - i - 2 ; j >= i + 1 ; j--){
a[j] = ++k;
}
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++)
System.out.print(a[j] + "\t");
System.out.println("");
}
}
} |
|