Cod sursa(job #1790563)

Utilizator Y.MalmsteenB.P.M. Y.Malmsteen Data 28 octombrie 2016 14:03:44
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>

using namespace std;

const int MAXN = 210;

int N;
unsigned char F1[MAXN] = {1, 1}, F2[MAXN] = {1, 2};

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()
{
    unsigned char *M1 = &F1[0], *M2 = &F2[0], *AX;
    fstream f;
    f.open("nunta.in", ios::in);
    f >> N;
    f.close();
    if(N <= 2)
        M2[1] = N;
    else
        for(int i = 3; i <= N; i++)
        {
            add(M1, M2);
            AX = M1;
            M1 = M2;
            M2 = AX;
        }
    f.open("nunta.out", ios::out);
    for(int i = M2[0]; i >= 1; i--)
        f << char(M2[i] + 48);
    f.close();
    return 0;
}