Cod sursa(job #1715884)

Utilizator cristina_borzaCristina Borza cristina_borza Data 11 iunie 2016 16:35:25
Problema Nunta Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <cstdio>
#include <cstring>

typedef int hugeNR[225];

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

hugeNR v1, v2, v3;
short int n;

void adun(hugeNR A , hugeNR B) {
    short int i, t = 0;
    for (i = 1; i <= A[0] || i <= B[0] || t; i++, t /= 10)
    {
        if (i > A[0]) A[i] = 0;
        if (i > B[0]) B[i] = 0;

        A[i] = (t += A[i]+B[i]) % 10;
    }
    A[0] = i-1;
}

void copie(hugeNR A , hugeNR B) {
    for (short int i = 0; i <= B[0]; ++i) {
        A[i] = B[i];
    }
}

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

    v1[1] = v1[0] = 1;
    v2[1] = v2[0] = 1;
    v3[1] = v3[0] = 1;

    for (short int i = 1; i <= n; ++i) {
        copie(v3, v2);
        adun(v2, v1);
        copie(v1, v3);
    }

    for (short int  i = v3[0]; i > 0; --i) {
        fprintf(g , "%d", (int)v3[i]);
    }
    return 0;
}