1.
>> Nie mogę sobie poradzić z przekształceniem tej funkcji na iterację
Wskazałem Ci przykład, który pokazuje jak przekształcić funkcję rekurencyjna na iterację
i dziwnym trafem jest to zbieżne z Twoja funkcją ("-").
podpowiedz (moim zdaniem) jest to tak z 90% szukanego rozwiązania.
2.
"dla liczb mniejszych od 3 funkcja po prostu zwraca liczbę"
w przykładzie tez tak jest - (to cześć Twojej pracy)
"dla liczb większych od 3 zwraca wyraz ciągu [1 -2 -3 -1 2 3] powtarzając go co 6 liczb"
powtarzający się "cykl" wynika tylko z tego układu danych - równania, które masz "iteracyjnie" zrealizować.
Dlatego w takich przypadkach nie można wykorzystasz np.
http://cpp0x.pl/kursy/Kurs-C++/Poziom-1/Warunek-wielokrotnego-wyboru-switch-case/17bo nie byłoby to zgodne z duchem funkcji rekurencyjnych i treścią zadania "przekształcić".
Celem zadania jest nauczenie Cię jak "przekształcić funkcję rekurencyjną na iterację".
jest to fundament wykształcenia informatycznego, gdyż funkcje rekurencyjne mają wiele bardzo krytycznych wad, nie pozwalających z nich skorzystać. (poczytaj sobie o tym).
z drugiej strony są takie fajne "rozwiązanie niektórych problemów jest znacznie wygodniejsze".
3.
@carlosmay choć debagowanie to wspaniałe narzędzie programisty - moim zdaniem - nie rozwiązuje tego problemu.
I może denerwuje "podejście" do problemu przez @kargi191, ale najlepiej założyć, że
każdy kiedyś zaczynał - ja już dawno temu, Ty pewnie też - dlatego choć dziś czasami chciałoby się powiedzieć "rynce opadywują", to musimy pamiętać, aby odpowiedz nie była obrażająca/zniechecajaca dla pytającego.
zamieszczamy odpowiedzi dobrowolnie - dzieląc się tym co możemy z siebie dać, być może Oni kiedyś pomogą innym równie bezinteresownie.
4.
@kargi191 przez "podejście" rozumiem wrażenie postawy "zróbcie to za mnie".
mam nadzieję, że zmienisz to, bo na forum nie akceptujemy takiej postawy.
Celem jest pomoc, ale oznacza to realizację zadania przez pytającego.
nie chcemy dawać "ryby", ale nauczyć pytającego "jak się łowi ryby".