Tags:
create new tag
view all tags

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
    1. viene suddivisa nelle 4 sottomatrici di lato L
    2. ciascuna sottomatrice viene ruotata (chiamata ricorsiva)
    3. le 4 sottomatrici vengono scambiate in senso antiorario di 1 posto

Esempio dei passi da svolgere

123
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
==>
1 2
5 6
3 4
7 8
9 10
13 14
11 12
15 16
==>
2 6
1 5
4 8
3 7
10 14
9 13
12 16
11 15
==>
4 8
3 7
12 16
11 15
2 6
1 5
10 14
9 13
==>
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