Cod sursa(job #1715869)

Utilizator cristina_borzaCristina Borza cristina_borza Data 11 iunie 2016 16:19:41
Problema Nunta Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.27 kb
#include <cstdio>

#define BASE 100

using namespace std;

FILE*f = fopen("nunta.in" , "r");
FILE*g = fopen("nunta.out" , "w");

char A[105] , B[105] , C[105];
short int n , t , aux;

int main() {
    fscanf(f , "%hd" , &n);

    A[1] = A[0] = 1;
    B[1] = B[0] = 1;
    C[1] = C[0] = 1;

    for (short int i = 2; i <= n; ++i) {
        for (short int i = 1; i <= C[0]; ++i) {
            C[i] = 0;
        }
        C[0] = B[0];

        for (short int i = 1; i <= B[0]; ++i) {
            aux = B[i] + A[i] + t;
            t = aux / BASE;
            C[i] = aux % BASE;
        }

        while (t) {
            C[++C[0]] = t % BASE;
            t /= BASE;
        }

        for (short int i = 1; i <= A[0]; ++i) {
            A[i] = 0;
        }
        A[0] = 0;

        for (short int i = 0; i <= B[0]; ++i) {
            A[i] = B[i];
        }
        for (short int i = 1; i <= B[0]; ++i) {
            B[i] = 0;
        }

        B[0] = 0;

        for (short int i = 0; i <= C[0]; ++i) {
            B[i] = C[i];
        }
    }

    fprintf(g , "%d", C[C[0]]);
    for (short int  i = C[0] - 1; i > 0; --i) {
        if((short int) C[i] < 10)
            fprintf(g , "0");
        fprintf(g , "%d", (int)C[i]);
    }
}