0423 - Termeni Fibonacci mai mici ca un numar
Cerința[edit | edit source]
Se consideră şirul Fibonacci, definit astfel: , dacă n > 2. Se dă un număr natural n. Să se afişeze în ordine crescătoare, termenii şirului lui Fibonacci mai mici sau egali cu n.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n.
Date de ieșire[edit | edit source]
Programul afișează pe ecran termenii şirului lui Fibonacci mai mici sau egali cu n, în ordine crescătoare, separați printr-un spaţiu.
Restricții și precizări[edit | edit source]
1 ≤ n ≤ 500.000.000
Exemplul 1[edit | edit source]
- Intrare
- 40
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 1 1 2 3 5 8 13 21 34
Exemplul 2[edit | edit source]
- Intrare
- 0
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1">
- 0423 - Termeni Fibonacci mai mici ca un numar
def fibonacci(n):
# inițializăm primii doi termeni ai șirului Fibonacci fib = [1, 1] # generăm șirul Fibonacci până când ultimul termen este mai mare decât n while fib[-1] <= n: fib.append(fib[-1] + fib[-2]) # returnăm toți termenii șirului, mai mici sau egali cu n return fib[:-1]
if __name__ == "__main__":
# citim numărul n de la tastatură n = int(input("Introduceți n: ")) # verificăm dacă n este în intervalul [1, 500.000.000] if n >= 1 and n <= 500_000_000: print("Datele de intrare corespund restricțiilor impuse.") print("Termenii șirului lui Fibonacci mai mici sau egali cu", n, "sunt:", end=" ") for termen in fibonacci(n): print(termen, end=" ") else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>