Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
FR_04_08 - Spirala liczbowa |
Spirala liczbowa
Napisz program, który dla dwóch liczb całkowitych a i b narysuje, zawartą w macierzy a × b, spiralę zbudowaną z kolejnych liczb naturalnych od 1 do a · b, o początku w a11 i kierunku rotacji zgodnej z ruchem wskazówek zegara. Wszystkie liczby od 1 do a · b muszą wypełnić całkowicie macierz a × b oraz wszystkie wyrazy macierzy powinny mieć tę samą długość, równą liczbie cyfr największej liczby. W miarę potrzeb, liczby należy uzupełnić o zera wiodące. Między wyrazami macierzy występuje jeden znak spacji, po każdym wierszu następuje znak końca linii.
Przykład poniżej przedstawia spiralę o wymiarach 5 × 8
01 02 03 04 05 06 07 08
22 23 24 25 26 27 28 09
21 36 37 38 39 40 29 10
20 35 34 33 32 31 30 11
19 18 17 16 15 14 13 12
Wejście
W pierwszym wierszu wejścia znajduje się liczba przypadków testowych d (1 ≤ d ≤ 10). Każdy przypadek testowy to dwie liczby całkowite a, b (1 ≤ a, b ≤ 100) oznaczające wymiary spirali.
Wyjście
Dla każdego przypadku testowego należy wydrukować spiralę według specyfikacji podanej w treści zadania.
Uwaga: każdy nadmiarowy biały znak lub jego brak na wyjściu spowoduje błędną odpowiedź. Ostatnim znakiem w wierszu musi być cyfra, po której dodajemy znak końca linii.
Przykład
Wejście
2
3 2
4 4
Wyjście
1 2
6 3
5 4
01 02 03 04
12 13 14 05
11 16 15 06
10 09 08 07
Dodane przez: | Mariusz Śliwiński |
Data dodania: | 2015-07-15 |
Limit czasu wykonania programu: | 1s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: ASM64 GOSU JS-MONKEY |