CCFテーマ:画像の回転

1459 ワード

問題の説明
回転は画像処理の基本的な操作であり、この問題では、1つの画像を反時計回りに90度回転させる必要があります.コンピュータ内の画像表示は1つのマトリクスで表すことができ、1つの画像を回転させるためには、対応するマトリクスを回転させるだけでよい.
入力フォーマット
入力された第1行は、画像マトリクスの行数と列数をそれぞれ表す2つの整数n,mを含む.次にn行毎にm個の整数を含み、入力された画像を表す.
出力フォーマット
出力m行、各行にn個の整数を含み、元のマトリクスが反時計回りに90度回転したマトリクスを表す.
サンプル入力
2 3 1 5 3 3 2 4
サンプル出力
3 4 5 2 1 3
評価用例の規模と約束
1≦n,m≦1000,行列中の数はいずれも1000を超えない非負の整数である.
===================================================================================
に答える
コードは次のとおりです.
package CSP4;

import java.util.Scanner;

public class InvPic {
	public static void main(String[] args) {
		new InvPic().run();
	}
	public void run(){
		Scanner sc=new Scanner(System.in);
		int M= sc.nextInt();
		int N=sc.nextInt();
		//int[][] arr=new int[M][N];
		int[][] arr=new int[N][M];
		for(int i=0;i

上と違うのは
arr[N-j-1][i]=sc.nextInt();

展開しました.
コードは次のとおりです.
package CSP4;

import java.util.Scanner;

public class InvPic1 {
	public static void main(String[] args) {
		new InvPic().run();
	}
	public void run(){
		Scanner sc=new Scanner(System.in);
		int M= sc.nextInt();
		int N=sc.nextInt();
		int[][] arr=new int[N][M];
		for(int i=0;i=0;j--){
			for(int i=0;i