3344 - Fibonacci2: Diferență între versiuni
De la Universitas MediaWiki
(Pagină nouă: == Cerința == Șirul lui Fibonacci este definit astfel: Fn={1Fn−1+Fn−2dacă n=1 sau n=2,dacă n>2. Se dă un număr natural n. Determinați al n-lea termen al șirului, modulo 666013. == Date de intrare == Programul citește de la tastatură numărul n. == Date de ieșire == Programul va afișa pe ecran numărul F, reprezentând al n-lea termen al șirului, modulo 666013. == Restricții și precizări == 1 ≤ n ≤ 2.000.000.000 == Exemplu 1 == ; Intrare : 6 ; Ieșire...) |
Fără descriere a modificării |
||
Linia 10: | Linia 10: | ||
== Restricții și precizări == | == Restricții și precizări == | ||
1 ≤ n ≤ 2.000.000.000 | 1 ≤ n ≤ 2.000.000.000 | ||
== | == Exemplul 1 == | ||
; Intrare | ; Intrare | ||
: 6 | : 6 | ||
Linia 16: | Linia 16: | ||
: 8 | : 8 | ||
<br> | <br> | ||
== | == Exemplul 2 == | ||
; Intrare | ; Intrare | ||
: 10 | : 10 | ||
Linia 25: | Linia 25: | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
#3344 - Fibonacci2 | #3344 - Fibonacci2 | ||
def | def fibonacci_modulo_n(n): | ||
fib = [0, 1] | |||
for i in range(2, n + 1): | |||
fib_i = (fib[i - 1] + fib[i - 2]) % 666013 | |||
fib.append(fib_i) | |||
return fib[n] | |||
def | def verificare_restrictii(n): | ||
n = | if 1 <= n <= 2.000.000.000: | ||
return True | |||
else: | |||
return False | |||
if __name__ == "__main__": | if __name__ == "__main__": | ||
n = int(input("Introduceți numărul n: ")) | |||
result = fibonacci_modulo_n(n) | |||
print(f"Al {n}-lea termen al șirului Fibonacci modulo 666013 este: {result}") | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== Explicatie == | |||
Termenii sunt: 1 1 2 3 5 8 13 21 34 55 89 ... |
Versiunea de la data 8 ianuarie 2024 17:44
Cerința
Șirul lui Fibonacci este definit astfel:
Fn={1Fn−1+Fn−2dacă n=1 sau n=2,dacă n>2. Se dă un număr natural n. Determinați al n-lea termen al șirului, modulo 666013.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieșire
Programul va afișa pe ecran numărul F, reprezentând al n-lea termen al șirului, modulo 666013.
Restricții și precizări
1 ≤ n ≤ 2.000.000.000
Exemplul 1
- Intrare
- 6
- Ieșire
- 8
Exemplul 2
- Intrare
- 10
- Ieșire
- 55
Rezolvare
#3344 - Fibonacci2
def fibonacci_modulo_n(n):
fib = [0, 1]
for i in range(2, n + 1):
fib_i = (fib[i - 1] + fib[i - 2]) % 666013
fib.append(fib_i)
return fib[n]
def verificare_restrictii(n):
if 1 <= n <= 2.000.000.000:
return True
else:
return False
if __name__ == "__main__":
n = int(input("Introduceți numărul n: "))
result = fibonacci_modulo_n(n)
print(f"Al {n}-lea termen al șirului Fibonacci modulo 666013 este: {result}")
Explicatie
Termenii sunt: 1 1 2 3 5 8 13 21 34 55 89 ...