1. 程式人生 > >CCF2015.3 第一題:影象旋轉(java) 80分(記憶體超限)

CCF2015.3 第一題:影象旋轉(java) 80分(記憶體超限)

CCF2015.3 第一題:影象旋轉(java)

問題描述
  旋轉是影象處理的基本操作,在這個問題中,你需要將一個影象逆時針旋轉90度。
  計算機中的影象表示可以用一個矩陣來表示,為了旋轉一個影象,只需要將對應的矩陣旋轉即可。
輸入格式
  輸入的第一行包含兩個整數n, m,分別表示影象矩陣的行數和列數。
  接下來n行每行包含m個整數,表示輸入的影象。
輸出格式
  輸出m行,每行包含n個整數,表示原始矩陣逆時針旋轉90度後的矩陣。
樣例輸入
2 3
1 5 3
3 2 4
樣例輸出
3 4
5 2
1 3

import java.util.Scanner;

public class TuXiangXuanZhuan {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();
		int[][] array = new int[n][m];
		int[][] b = new int[m][n];
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				array[i][j] = sc.nextInt();
			}
		}
		/*
		 * for(int i=0;i<n;i++) { for(int j=0;j<m;j++) {
		 * System.out.print(array[i][j]+" "); } System.out.println(); }
		 */

		for (int i = 0; i < m; i++) {
			for (int j = 0; j < n; j++) {
				b[m-i-1][j] = array[j][i];
			}
		}
		for (int i = 0; i < m; i++) {
			for (int j = 0; j < n; j++) {
				System.out.print(b[i][j] + " ");
			}
			System.out.println();
		}
	}
}