1914 - Rica
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>
- 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>