2917 - Catalan

From Bitnami MediaWiki
Revision as of 19:03, 15 November 2023 by Tita Marian (talk | contribs) (Pagină nouă: == Cerinţa == Numerele lui Catalan formează un șir cunoscut în combinatorică. Termenul general al acestui șir este: Cn=Cn2n–Cn+12n=1n+1⋅Cn2n=∏k=2nn+kk,pentru n≥0��=�2��–�2��+1=1�+1⋅�2��=∏�=2��+��,pentru �≥0 Primele 1010 numere Catalan sunt: 1,1,2,5,14,42,132,429,1430,4862 == Date de intrare == Programul citește de la tastatură numărul '''n'''. Programul va afișa pe ecran al '''n'''-lea număr Catalan. În cazul în...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa

Numerele lui Catalan formează un șir cunoscut în combinatorică. Termenul general al acestui șir este: Cn=Cn2n–Cn+12n=1n+1⋅Cn2n=∏k=2nn+kk,pentru n≥0��=�2��–�2��+1=1�+1⋅�2��=∏�=2��+��,pentru �≥0 Primele 1010 numere Catalan sunt: 1,1,2,5,14,42,132,429,1430,4862

Date de intrare

Programul citește de la tastatură numărul n. Programul va afișa pe ecran al n-lea număr Catalan. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse. ".

Restricţii şi precizări

  • 0 ⩽ n ⩽ 1000

Exemplu 1

Intrare

5

Ieșire

42

Exemplu 2

Intrare

-2

Ieșire

Datele de intrare nu corespund restricțiilor impuse.

Rezolvare

<syntaxhighlight lang="python" line> import math

def calculeaza_numar_catalan(n):

   return math.factorial(2 * n) // (math.factorial(n + 1) * math.factorial(n))

if __name__ == "__main__":

   try:
       n = int(input("Introduceți numărul n: "))
       if 0 <= n <= 1000:
           rezultat = calculeaza_numar_catalan(n)
           print(f"Al {n}-lea număr Catalan este: {rezultat}")
       else:
           print("Datele de intrare nu corespund restrictiilor impuse.")
   except ValueError:
       print("Datele de intrare nu corespund restrictiilor impuse.")

</syntaxhighlight>