0256 - Verificare termen sir Fibonacci
Cerință[edit | edit source]
Se dau n numere naturale. Să se verifice despre fiecare dacă este termen al şirului lui Fibonacci.
- Se consideră şirul Fibonacci, definit astfel: f1=0 , f2=1 , fn=fn-1+fn-2 , dacă n>2.
Date de intrare[edit | edit source]
Programul citește de la tastatură numerele pe care dorim sa le verificam daca apartin sirului Fibonacci.
Date de ieșire[edit | edit source]
Programul afișează pe ecran DA / NU in functie de apartenenta numarului in sirul Fibonacci.
Restricții și precizări[edit | edit source]
1 ≤ n ≤ 10 numerele care se verifică au cel mult 9 cifre
Exemplu[edit | edit source]
Date de intrare: 8 13 1 8 24 21 55 47 8
Date de ieșire:
DA
DA
DA
NU
DA
DA
NU
DA
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line> def apartine_sir_fibo(numar):
if numar == 1: return 1 f1 = 0 f2 = 1 f3 = f1 + f2 while numar > f3: f3 = f1 + f2 f1 = f2 f2 = f3 return numar == f3
def numere(array):
for elements in array: if apartine_sir_fibo(elements): print("DA") else: print("NU")
if __name__ == "__main__":
numar = int(input()) array = [int(input()) for i in range(numar)] numere(array)
</syntaxhighlight>