Co
:|
Rzuciłbym kąśliwą uwagę, ale nie będąc pewien jakie mogą być jej konsekwencje, daruję sobie, z władzami lepiej nie zadzierać.
Po pierwsze - osoba zakładająca wątek bardzo wyraźnie poprosiła o pomysł na algorytm, a nie o kod, a może on wcale nie chce tego zaprogramować, potrzebuje tylko pomysłu na wykonanie tego?
Po drugie - ten problem nie jest taki prosty, w pierwszym momencie nie wiedziałem jak to zrobić i dopiero z kartką i ołówkiem udało mi się wykombinować. Śmiem stwierdzić że pan moderator rzucił okiem, zobaczył że chodzi o tablice n x n i uznał że to banał, a nie rzucił okiem, że autor nie ma na myśli zwyczajnie wypełnionej tablicy a wypełnionej takim "ślimakiem"
1 2 3
8 9 4
7 6 5
No chyba że z moderatora bardzo inteligentny człowiek i od razu wymyślił jak to zrobić. Tak czy inaczej, to FORUM, miejsce na którym ludzie szukają rozwiązań problemów. Nie da się ukryć, że wielu to dzieci którym nie chce się poszukać na google, ba, sądzę że nawet tego problemu rozwiązanie dałoby rade znaleźć na google, ale w takim razie po co forum jak odpowiedzi na wszystko są w wielkim G?
A teraz do rzeczy, ja to zrobiłem tak:
i - indeksy kolumn, j - indeksy wierszy
x - dodatkowy znacznik który powie że ten kawałek już wypełniliśmy
n - liczba n
counter - największa wartość w danym momencie wstawiona w tablice
4 pętle for
1:
Dla j=x wypełniamy tablice od i=x do i<n-x
2:
Dla i=n-x-1 (ten -1 dlatego że podając wielkość tablicy 5 mamy indeksy od 0 do 4, wiec ostatnim indeksem jest n-1) wypełniamy tablice od j=x+1 do j<n-x
3:
Dla j=n-x-1 wypełniamy od i=n-x-1-1 (dodatkowe -1 dlatego że róg tablicy wypełniliśmy w poprzednim forze) do i>=x
4:
Dla i=x wypełniamy od j=n-x-1-1 do j>x
Na samym końcu robimy x++, poza tymi 4 pętlami. Tablica jest już na brzegach wypełniona, musimy odpalić to jeszcze n-1 razy, wiec cały ten kod wrzucamy w pętle co się wykona n razy i po problemie.
voila, zrobione u mnie wyświetliło piękną tablice
Jeśli coś nie będzie działało znaczy albo gdzieś sie machnąłem opisując algorytm na forum albo Ty źle przepisałeś Proponuję Ci najpierw wziąć kartkę i samemu krok po kroku stworzyć taką tablicę ołówkiem, ułatwia ogarnięcie działania algorytmu