0994 - Fibo Verif 1: Difference between revisions
Miawinator (talk | contribs) Pagină nouă: = Cerinţa = Se consideră şirul Fibonacci, definit astfel: <code>f1=1</code>, <code>f2=1</code>, respectiv <code>fn=fn-1+fn-2</code>, dacă <code>n>2</code>. Se dă un şir cu <code>n</code> elemente, numere naturale. Să se afişeze elementele şirului care sunt termeni ai şirului lui Fibonacci. Se va defini şi apela o funcţie <code>fibo</code> care verifică dacă un număr natural, transmis ca parametru, face parte din şirul lui Fibonacci. = Date de intrare = Pe p... |
Miawinator (talk | contribs) mNo edit summary |
||
Line 7: | Line 7: | ||
= Date de intrare = | = Date de intrare = | ||
Pe prima linie a fişierului <code>fiboverif1. | Pe prima linie a fişierului <code>fiboverif1.txt</code> se află numărul <code>n</code>, iar pe a doua linie <code>n</code> numere naturale. | ||
= Date de ieşire = | = Date de ieşire = | ||
Pe prima linie a fişierului <code> | Pe prima linie a fişierului <code>fiboverif2.txt</code> se vor afla elementele şirului dat care sunt termeni ai şirului lui Fibonacci, separaţi prin exact un spaţiu. | ||
= Restricţii şi precizări = | = Restricţii şi precizări = |
Latest revision as of 12:58, 3 December 2023
Cerinţa[edit | edit source]
Se consideră şirul Fibonacci, definit astfel: f1=1
, f2=1
, respectiv fn=fn-1+fn-2
, dacă n>2
.
Se dă un şir cu n
elemente, numere naturale. Să se afişeze elementele şirului care sunt termeni ai şirului lui Fibonacci.
Se va defini şi apela o funcţie fibo
care verifică dacă un număr natural, transmis ca parametru, face parte din şirul lui Fibonacci.
Date de intrare[edit | edit source]
Pe prima linie a fişierului fiboverif1.txt
se află numărul n
, iar pe a doua linie n
numere naturale.
Date de ieşire[edit | edit source]
Pe prima linie a fişierului fiboverif2.txt
se vor afla elementele şirului dat care sunt termeni ai şirului lui Fibonacci, separaţi prin exact un spaţiu.
Restricţii şi precizări[edit | edit source]
1 ≤ n ≤ 10
- elementele şirului vor avea cel mult
9
cifre
Exemplul 1[edit | edit source]
fiboverif1.txt:
8
13 1 8 24 21 55 47 8
fiboverif2.txt:
13 1 8 21 55 8
Exemplul 2[edit | edit source]
fiboverif1.txt:
0
13 1 8 24 21 55 47 8 9
Output consola: Numărul n trebuie să fie între 1 și 10.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python3" line="1"> def validate_input(n, sir):
# Verificare pentru n if not (1 <= n <= 10): print("Numărul n trebuie să fie între 1 și 10.") return False
# Verificare pentru fiecare element din șir for x in sir: if not (1 <= x <= 999999999): print("Elementele șirului trebuie să fie numere naturale cu cel mult 9 cifre.") return False
return True
def fibo(numar):
a, b = 0, 1 while a <= numar: if a == numar: return True a, b = b, a + b return False
def main():
# Citire date de intrare din fisier with open("fiboverif1.txt", "r") as f: n = int(f.readline()) sir = list(map(int, f.readline().split()))
# Verificare validitate input if not validate_input(n, sir): return
# Afișare elemente din șir care sunt termeni ai șirului lui Fibonacci rezultat = [str(x) for x in sir if fibo(x)]
# Scriere rezultat in fisier with open("fiboverif2.txt", "w") as f: f.write(" ".join(rezultat))
if __name__ == "__main__":
main()
</syntaxhighlight>