Pentru realizarea algoritmului am utilizat următoarele variabile: z, y, x, t, de tip întreg, pentru care am alocat câte 4 octeți, variabile care înlocuiesc, în ordine, datele din problemă: fn, fn-1, fn-2, fn-3.
În concluzie, variabilele folosite utilizează o memorie de 2*4=8 octeți, de unde rezultă EFICIENTA UTILIZĂRII MEMORIEI (pe lângă variabila utilizată pentru fișier).

În prima parte a algoritmului am declarat variabilele și am deschis fișierul bac.txt, pentru a scrie în el datele solicitate.
Prin intermediul structurii repetitive, cu test inițial, while, am afișat rezultatele, descrescător, începând de la z. După asta, pregătesc următoarele valori: după formula calculată, t=(4*y-3*x-z)/2, în contextul z=fostul y, y=fostul x, x=fostul t. Repet aceste operații până când z devine 0. După finalizarea execuției acestei structuri afișez ultimele valori, respectiv cei 2 de 0.
Scrierea am realizat-o așa cum s-a cerut, în fișierul <bac.txt>. Practic, am parcurs o singură dată strict valorile din șir, în ordinea lor descrescătoare, adică am efectuat o parcurgere liniară.
În acest fel, am EFICIENTIZAT TIMPUL DE EXECUȚIE, algoritmul fiind unul liniar, complexitatea algoritmului fiind maxim N (unde N este numărul de valori din șir), adică O(N), de unde rezultă liniaritatea algoritmului.