Cod sursa(job #2022555)

Utilizator LeVladzCiuperceanu Vlad LeVladz Data 16 septembrie 2017 18:46:43
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>

using namespace std;

ifstream fin("nunta.in");
ofstream fout("nunta.out");

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

void adun(int A[], int B[], int C[])
{
    int m = max(A[0], B[0]);
    int t = 0;
    for (int i=1; i<=m; i++)
    {
        C[i] = A[i]+B[i]+t;
        t = C[i]/10;
        C[i] %= 10;
    }
    C[0] = m;
    if (t != 0)
        C[++C[0]] = t;
}

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

int main()
{
    fin >> n;
    if (n == 1)
    {
        fout << 1;
        return 0;
    }
    a[0] = b[0] = a[1] = b[1] = 1;
    for (i=1; i<=n-1; i++)
    {
        adun(a, b, c);
        atribuire(b, a);
        atribuire(c, b);
    }
    for (i=c[0]; i>=1; i--)
        fout << c[i];
    return 0;
}