Recursivitate Reciprocă

Time limit: 0.02s Memory limit: 4MB Input: Output:

Ștefan, după ce a citit cartea Gödel, Escher, Bach: an Eternal Golden Braid de Douglas Hofstadter, și-a dorit să implementeze șirurile „Figure-Figure”, ca o provocare.

Cele două șiruri sunt definite așa:
R(1)=1; S(1)=2R(1) = 1;\ S(1) = 2
R(n)=R(n1)+S(n1)R(n) = R(n-1) + S(n-1)

Șirul S(n)S(n) este șirul de numere naturale strict crescătoare care nu apar în R(n)R(n). Cele două șiruri sunt complementare.

Cerință

Întrucât ultima oară când a scris un program cu recursivitate mutuală a avut greșeli, de data asta a încercat să adapteze un cod de pe wiki-ul Rosetta Code. Totuși, ceva nu a mers conform planului...

Aici (sau în secțiunea „Atașamente” din lateral) puteți găsi programul scris de Ștefan. Sarcina voastră este să îl faceți să meargă corespunzător.

Date de intrare

Se va citi din terminal nn, un număr natural mai mic sau egal cu 1 0001\ 000.

Date de ieșire

Se va afișa în terminal pe 2 linii șirul R(n)R(n), respectiv S(n)S(n), respectând formatul descris în exemplul de mai jos.

Exemplu

stdin

20

stdout

R(20): 1 3 7 12 18 26 35 45 56 69 83 98 114 131 150 170 191 213 236 260
S(20): 2 4 5 6 8 9 10 11 13 14 15 16 17 19 20 21 22 23 24 25

Log in or sign up to be able to send submissions!