Wskazówka:
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.
Powrót do pytań