Do rozwiązania tego zadania stosujemy definicję rekurencyjną wynik(i), wynikającą wprost z podanego pseudokodu:
wynik(0) = wynik(1) = wynik(2)=1
wynik(i) = wynik(i – 3) + wynik(i – 1) + 1 dla parzystych i>2
wynik(i) = wynik(i – 1) mod 7 dla nieparzystych i>2
A zatem:
• wynik(3) = wynik(2) mod 7 = 1 mod 7 = 1
• wynik(4) = wynik(3) + wynik(1) + 1 = 1 + 1 + 1 = 3
• wynik(5) = wynik(4) mod 7 = 3 mod 7 = 3
• wynik(6) = wynik(5) + wynik(3) + 1 = 3 + 1 + 1 = 5
• wynik(7) = wynik(6) mod 7 = 5 mod 7 = 5
• wynik(8) = wynik(7) + wynik(5) + 1 = 5 + 3 + 1 = 9
Zwróćmy uwagę, że w powyższym rozwiązaniu dla kolejnych argumentów (większych niż 2)
funkcja
wynik jest wywoływana wielokrotnie. Nie musimy jej jednak wielokrotnie wyznaczać, np. raz obliczony
wynik(3) możemy wykorzystać przy każdym odwołaniu, bez ponownego obliczania.