Cod sursa(job #2558585)

Utilizator BAlexandruBorgovan Alexandru BAlexandru Data 26 februarie 2020 17:40:16
Problema Nunta Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>

using namespace std;

ifstream f("nunta.in");
ofstream g("nunta.out");

int n, i;
int a[220], b[220], c[220];

void adunare(int a[], int b[], int c[])
{
    int t = 0;
    c[0] = max(a[0], b[0]);
    for (int i=1; i<=c[0]; i++)
    {
        t += a[i] + b[i];
        c[i] = t % 10;
        t /= 10;
    }
    while (t)
    {
        c[0]++;
        c[c[0]] = t % 10;
        t /= 10;
    }
}

void copie(int a[], int b[])
{
    for (int i=0; i<=b[0]; i++)
        a[i] = b[i];
}

int main()
{
    f >> n;

    if (n == 0 || n == 1)
    {
        g << 1;
        return 0;
    }

    a[0] = a[1] = 1;
    b[0] = b[1] = 1;

    for (i=2; i<=n; i++)
    {
        adunare(a, b, c);
        copie(a, b);
        copie(b, c);
    }

    for (i=c[0]; i>=1; i--)
        g << c[i];

    return 0;
}