Homework 4 (rotazione ricorsiva di una immagine/matrice)
Dovete realizzare la rotazione di una matrice di dimensioni 2^N di un quarto di giro in senso antiorario (implementazione ricorsiva).
Per ruotare una matrice ricorsivamente:
- caso base: una matrice di lato L=1 non č necessario ruotarla
- caso ricorsivo: una matrice di lato 2*L
- viene suddivisa nelle 4 sottomatrici di lato L
- ciascuna sottomatrice viene ruotata (chiamata ricorsiva)
- le 4 sottomatrici vengono scambiate in senso antiorario di 1 posto
Esempio dei passi da svolgere
| | 1 | | 2 | | 3 | | |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
|
==>
|
|
==>
|
|
==>
|
|
==>
|
4 |
8 |
12 |
16 |
3 |
7 |
11 |
15 |
2 |
6 |
10 |
14 |
1 |
5 |
9 |
13 |
|
- Input previsto: una matrice di dimensioni 2^N, con N compreso tra 0 e 8, rappresentata come segue:
- il numero N che indica la dimensione del lato (2^N)
- seguito da 2^2N righe contenenti ciascuna uno dei valori (in ordine di riga)
N
2^N * 2^N elementi ciascuna su una riga
- Output previsto: la matrice stampata
Esempio di input/output
Input:
2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Output:
4 8 12 16
3 7 11 15
2 6 10 14
1 5 9 13
Risultati dei test
--
AndreaSterbini - 02 Jun 2014