`
TiFa.L.Hart
  • 浏览: 15890 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

nXn矩阵转圈圈

    博客分类:
  • Java
 
阅读更多
输入一个数字n,输出n x n矩阵,从1开始,顺着下、右、上、左递归绕圈圈:
int i=0,j=0;
		int step;
		int n = 0;
		int stub,type;
		int result[][];
		int val=1;
		String tmp;
		System.out.println("请输入一个正整数:");
		BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
		tmp = bfr.readLine();
		bfr.close();
		if(tmp == null){
			System.out.println("警告!没有输入值,程序将退出");
			return;
		}
		n = Integer.parseInt(tmp);
		stub = 2*n-1;
		result = new int[n][n];
		for(int k=1; k<=stub; k++){
			type = k%4;
			step = n-k/2;
			
			if(type == 1){ //向下
				for(int down=1; down<=step; down++){
					result[i][j] = val;
					val++;
					i++;
				}
				i--;
				j++;
			}else if(type == 2){ //向右
				for(int right=1; right<=step; right++){
					result[i][j] = val;
					val++;
					j++;
				}
				j--;
				i--;
			}else if(type == 3){ //向上
				for(int up=1; up<=step; up++){
					result[i][j] = val;
					val++;
					i--;
				}
				i++;
				j--;
			}else if(type == 0){ //向左
				for(int left=1; left<=step; left++){
					result[i][j] = val;
					val++;
					j--;
				}
				j++;
				i++;
			}
		}//end of outter for loop
		
		// print result:
		for(int rs[] : result){
			for(int r : rs){
				System.out.printf("%4d",r);
			}
			System.out.println();
		}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics