0256 - Verificare termen sir Fibonacci
De la Universitas MediaWiki
Cerință
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
Programul citește de la tastatură numerele pe care dorim sa le verificam daca apartin sirului Fibonacci.
Date de ieșire
Programul afișează pe ecran DA / NU in functie de apartenenta numarului in sirul Fibonacci.
Restricții și precizări
1 ≤ n ≤ 10 numerele care se verifică au cel mult 9 cifre
Exemplu
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
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)