Cod sursa(job #1790557)

Utilizator Y.MalmsteenB.P.M. Y.Malmsteen Data 28 octombrie 2016 13:52:20
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <cstdio>

#define MAXN 210

int N;
FILE *f;

unsigned char F1[MAXN] = {1, 1}, F2[MAXN] = {1, 2};
unsigned char *M1 = &F1[0], *M2 = &F2[0], *AX;

void add(unsigned char A[], unsigned char B[])
{
    //Se calculeaza A=A+B stiind ca B>=A
    int i, t = 0;
    for(i = 1; i <= B[0] || t; i++, t /= 10)
        A[i] = (t += A[i] + B[i]) % 10;
    A[0] = i - 1;
}

int main()
{
    f = fopen("nunta.in", "r");
    fscanf(f, "%d", &N);
    fclose(f);
    if(N <= 2)
        M2[1] = N;
    else
        for(int i = 3; i <= N; i++)
        {
            add(M1, M2);
            AX = M1;
            M1 = M2;
            M2 = AX;
        }
    f = fopen("nunta.out", "w");
    for(int i = M2[0]; i >= 1; i--)
        fputc(M2[i] + '0', f);
    fclose(f);
    return 0;
}