1914 - Rica
Cerința
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
Fișierul de intrare ricain.txt conține pe prima linie valoarea lui X.
Date de ieșire
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
- 1 ⩽ n ⩽ 10.000
Exemplu 1
- ricain.txt
- 6
- ricaout.txt
- 13
Exemplu 2
- ricain.txt
- 12
- ricaout.txt
- 504
Exemplu 3
- ricain.txt
- 0
- ricaout.txt
- Nu au fost respectate cerintele.
Rezolvare
<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>