Dodam od siebie, że to zadanie można zrobić w C++ bez rekurencji.. wystarczy sprawdzić wyniki dla czterech kolejnych wartości (od jedynki w górę):
n | f(n)
--------
1 | 4
2 | -1/3
3 | 3/4
4 | 4
Łatwo stwierdzić, że wartości będą się powtarzać cyklicznie.
Teraz wystarczy zrobić prostą funkcję opierającą się na switch'u i reszcie z dzielenia:
float Funkcja(int n) { switch(n%3) { case 0: return 4.0f; case 1: return -1.0f/3.0f; case 2: return 3.0f/4.0f; } }