Jest to funkcja rekurencyjna, która zwraca zwiększony o 1 (gdy x jest nieparzyste) lub zmniejszony o 1 (gdy x jest parzyste) wynik siebie samej podzielonej bez reszty przez 2.
Jak zabrać się do obliczenia wyniku? Spróbujmy najpierw wykonać przykład, czyli wartość funkcji dla x=11.
1. W pierwszym kroku za x podstawiamy 11. Jest to wartość różna od 1, więc zgodnie z zadaniem wywołujemy ponownie funkcję licz, tym razem za x podstawimy 5, bo tyle wyniesie dzielenie bez reszty 11 przez 2.
2. Otrzymaną wartość, czyli 5 podstawiamy do funkcji licz, która jest niejako "wewnętrzna", w stosunku do funkcji z podpunktu 1.
3. Liczba 5 jest różna od 1, więc wywołujemy ponownie funkcję licz, tym razem za x podstawimy 2, bo tyle wyniesie dzielenie bez reszty 5 przez 2.
4. Otrzymaną wartość, czyli 2 podstawiamy do funkcji licz, która jest niejako "wewnętrzna", w stosunku do funkcji z podpunktu 3.
5. Liczba 2 jest różna od 1, więc wywołujemy ponownie funkcję licz, tym razem za x podstawimy 1, bo tyle wyniesie dzielenie bez reszty 2 przez 2.
4. Otrzymaną wartość, czyli 2 podstawiamy do funkcji licz, która jest niejako "wewnętrzna", w stosunku do funkcji z podpunktu 5.
6. Liczba 1 spełnia warunek postawiony na początku zadania. stąd zmienna w=1.
7. Teraz musimy wrócić drogą, którą tu przyszliśmy, czyli przechodzimy o poziom wyżej, do funkcji licz, która była wywołana z x=2. Nasze x=2 jest parzyste. tzn. operacja modulo zwróci nam 0, dlatego od zmiennej w, która nadal wynosi 1 odejmujemy 1. W tym momencie wartość w=0.
8. Przechodzimy znowu o poziom wyżej, do wywołania funkcji dla x=5. Nasze x=5 jest nieparzyste. tzn. operacja modulo zwróci nam 1, dlatego do zmiennej w, która wynosi 0 dodajemy 1. W tym momencie wartość w=1.
9. Przechodzimy znowu o poziom wyżej, do wywołania funkcji dla x=11. Nasze x=11 jest nieparzyste. tzn. operacja modulo zwróci nam 1, dlatego do zmiennej w, która wynosi 1 dodajemy 1. W tym momencie wartość w=2.
Wartość w dla licz(11) wynosi 2.
Podobnie rozwiązujemy kolejne podpunkty. Zauważ, że dla x=13 kluczowe będzie policzenie tego co zwróci funkcja dla x równego kolejno: 13, 6, 3, 1 (wartości powstałe z dzielenia modulo). Wiemy, że dla licz(1) wartość zmiennej w=1 (patrz wyżej podpunkt 6). W związku z tym dla licz(3) (liczba nieparzysta, stąd w+1) wartość zmiennej w=2, dla licz(6) (liczba parzysta, stąd w-1) wartość zmiennej w=1, dla licz(13) (liczba nieparzysta, stąd w+1) wartość zmiennej w=2.
Dla kolejnych podpunktów wyniki wyglądają następująco:
dla licz(21) w=1 (kolejne funkcje, które wywołujemy to: licz(21), licz(10), licz(5), licz(2), licz(1))
dla licz(32) w=-4 (kolejne funkcje, które wywołujemy to: licz(32), licz(16), licz(8), licz(4), licz(2), licz(1))
Obejrzyj na Youtube nasz film, który w formie prezentacji pokazuje rozwiązanie zadania: https://www.youtube.com/watch?v=Gi8TzERNbAo