Wskazówka:
Naturalnym sposobem uniknięcia kolejnych wywołań rekurencyjnych jest tablicowanie wyników, co zostało zasugerowane w podanym niekompletnym algorytmie. Jeśli wartości wynik(0), wynik(1),...,wynik(i – 1) przechowywane są w komórkach W[0], W[1],...,W[i–1] tablicy W, to wartość wynik(i) możemy wyznaczyć jako W[i–3]+W[i–1]+1 dla i parzystych oraz W[i] mod 7 dla i nieparzystych. Aby wyznaczoną wartość zapamiętać w odpowiedniej komórce tablicy W, użyjemy powyższych wyrażeń do uzupełnienia instrukcji podstawienia w podanym algorytmie.

Zmienna max_wart, jak wskazuje nazwa, może być użyta do przechowywania największej wyznaczonej dotychczas wartości funkcji wynik, zatem aktualizujemy ją zawsze, gdy W[i]>max_wart. 
Powrót do pytań