Witajcie. Myślałem, że w miarę rozumiem używanie rekurencji, ale tylko mi się wydawało.
Chciałbym przećwiczyć sobie wypełnianie rekurencyjnie tablic dwuwymiarowych w różne wzory np. węże, skośne linie, różne inne patterny.
Tutaj wezmę przykład wypełniania "po przekątnej". Wypełniona tablica dwuwymiarowa tablica[5][5]
(kwadrat) powinna wyglądać tak:
O ile wypełnienie tego w sposób iteracyjny
nie powinno stanowić dla mnie wielkiego wyzwania, to w sposób rekurencyjny
nie wiem nawet jak zacząć.
Póki co mam tylko szkielet kodu (przepraszam za język polski.
#include <iostream>
const int rozmiar = 5;
int tablica[rozmiar][rozmiar] = {};
void wypelnienie(int n)
{
// warunek do przerwania rekursji
if (n > rozmiar)
return;
for (int i = 0; i < rozmiar; i++) {
for (int j = 0; j < rozmiar; j++) {
tablica[i][j] = n;
}
}
wypelnienie(n + 1);
}
int main()
{
wypelnienie(1);
}
Oczywiście nie wszystko ma tu sens, warunki w pętlach pewnie nie pasują. Nie wiem jak dalej ugryźć to zadanie jeśli chodzi o rozwiązanie rekurencyjne.