1914 - Rica

From Bitnami MediaWiki

Cerința[edit | edit source]

Rică a învățat la școală despre șiruri recurente și a primit ca temă să lucreze cu un anumit șir. Rică știe că primele elemente din acest șir sunt următoarele: 1,1,2,4,7,13,24,44,81,149,274,504. Tema lui Rică este să găsească termenul de pe locul X. Rică nu știa să zică… regula şirului nostru, de aceea el vă cere ajutorul.

Deduceți regula de formare a șirului și scrieți un program care să afișeze pentru un X dat, elementul din șir de pe poziția X.

Date de intrare[edit | edit source]

Fișierul de intrare ricain.txt conține pe prima linie valoarea lui X.

Date de ieșire[edit | edit source]

Fișierul de ieșire ricaout.txt va conține pe prima linie valoarea elementului din şirul dat de pe poziţia X.

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

  • 1 ⩽ n ⩽ 10.000

Exemplu 1[edit | edit source]

ricain.txt
6
ricaout.txt
13

Exemplu 2[edit | edit source]

ricain.txt
12
ricaout.txt
504

Exemplu 3[edit | edit source]

ricain.txt
0
ricaout.txt
Nu au fost respectate cerintele.

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

  1. 1914 - Rica

def construieste_sir(X):

   sir = [1, 1, 2]
   for i in range(3, X):
       sir.append(sir[i - 1] + sir[i - 2] + sir[i - 3])
   return sir


def main(input_file, output_file):

   try:
       with open(input_file, 'r') as file:
           X = int(file.readline().strip())
           if 1 <= X <= 10000:
               sir = construieste_sir(X)
               with open(output_file, 'w') as output:
                   output.write(str(sir[X - 1]) + '\n')
           else:
               print("Nu au fost respectate cerintele impuse.")
   except Exception as e:
       print(f"Nu au fost respectate cerințele impuse: {str(e)}")


if __name__ == "__main__":

   main("ricain.txt", "ricaout.txt")

</syntaxhighlight>