4262 - FiboRec
Cerința
Scrieți funcția recursivă cu antetul
def FiboRec(x, y)
care primind ca parametri două numere întregi x și y, returnează 1 dacă x și y și sunt doi termeni consecutivi ai șirului Fibonacci, sau returnează 0 în caz contrar.
Restricții și precizări
- Primii zece termeni ai șirului Fibonacci sunt: 1,1,2,3,5,8,13,21,34,55.
- Dacă x și y sunt termeni consecutivi ai șirului Fibonacci, atunci trebuie ca x ≤ y.
- Se recomandă utilizarea recursivității în rezolvarea problemei.
Exemplu
FiboRec(1, 1) = 1, FiboRec(3, 5) = 1, FiboRec(7, 8) = 0, FiboRec(8, 5) = 0, FiboRec(5, 8) = 1.
Important
Soluția propusă va conține doar funcția cerută. Introducerea în soluție a altor instrucțiuni poate duce la erori de compilare sau de execuție, care vor duce la depunctarea soluției.
Rezolvare
<syntaxhighlight lang="python"> def FiboRec(x, y):
if x == y: return 1 elif x > y or y < 1: return 0 else: return FiboRec(y - x, x)
</syntaxhighlight>