0229 - Gen Mat 16: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: ==Cerința== Se consideră şirul lui Fibonacci, definit astfel: <math>f1=1 , f2=1 , fn=fn-1+fn-2</math>, dacă <math>n</math>>2. Scrieţi un program care citeşte de la tastatură un număr natural n şi construieşte în memorie o matrice cu n linii şi n coloane ale cărei elemente sunt numere naturale, fiecare reprezentând ultima cifră a câte unui termen al şirului lui Fibonacci, începând de la termenul de indice 1 şi până la termenul de indice <math>n^2</math>....
 
No edit summary
 
Line 23: Line 23:
:Datele de intrare nu corespund restricțiilor impuse.
:Datele de intrare nu corespund restricțiilor impuse.
==Rezolvare==
==Rezolvare==
<syntaxhighlight lang="python" line="">
<syntaxhighlight lang="python" line="1">
#0229 - Gen Mat 16
#0229 - Gen Mat 16
def last_digit_fibonacci(n):
def last_digit_fibonacci(n):
Line 45: Line 45:
     return matrix
     return matrix


def main():
if __name__ == "__main__":
     # citim n de la tastatură
     # citim n de la tastatură
     n = int(input("Introduceti n: "))
     n = int(input("Introduceti n: "))
Line 58: Line 58:
         print("Datele de intrare nu corespund restricțiilor impuse.")
         print("Datele de intrare nu corespund restricțiilor impuse.")


if __name__ == "__main__":
 
    main()
 
      
      
</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 21:06, 23 April 2023

Cerința[edit | edit source]

Se consideră şirul lui Fibonacci, definit astfel: , dacă >2. Scrieţi un program care citeşte de la tastatură un număr natural n şi construieşte în memorie o matrice cu n linii şi n coloane ale cărei elemente sunt numere naturale, fiecare reprezentând ultima cifră a câte unui termen al şirului lui Fibonacci, începând de la termenul de indice 1 şi până la termenul de indice .

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 matricea construită, câte o linie a matricei pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu.

Restricții și precizări[edit | edit source]

  • 3 ≤ n ≤ 24;

Exemplul 1[edit | edit source]

Intrare
4
Ieșire
Datele de intrare corespund restricțiilor impuse.
1 1 2 3
5 8 3 1
4 5 9 4
3 7 0 7

Exemplul 2[edit | edit source]

Intrare
1
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line="1">

  1. 0229 - Gen Mat 16

def last_digit_fibonacci(n):

   # inițializăm lista cu primele două numere din șirul lui Fibonacci
   last_digits = [1, 1]
   # calculăm ultimele cifre pentru restul numerelor din șirul lui Fibonacci
   for i in range(2, n * n):
       last_digits.append((last_digits[i-1] + last_digits[i-2]) % 10)
   return last_digits

def build_fibonacci_matrix(n):

   # calculăm ultima cifră a fiecărui termen din șirul lui Fibonacci
   last_digits = last_digit_fibonacci(n)
   # construim matricea și adăugăm ultimele cifre calculate
   matrix = []
   for i in range(n):
       row = []
       for j in range(n):
           row.append(last_digits[i*n+j])
       matrix.append(row)
   return matrix

if __name__ == "__main__":

   # citim n de la tastatură
   n = int(input("Introduceti n: "))
   # verificăm restricțiile
   if n >= 3 and n <= 24:
       # construim matricea și o afișăm pe ecran
       matrix = build_fibonacci_matrix(n)
       print("Datele de intrare corespund restricțiilor impuse.")
       for row in matrix:
           print(" ".join(map(str, row)))
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")



</syntaxhighlight>