Cod sursa(job #457930)

Utilizator SpiderManSimoiu Robert SpiderMan Data 22 mai 2010 08:32:59
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <cstdio>

const char FIN[] = "nunta.in";
const char FOU[] = "nunta.out";
const int MAX = 220;

int A[MAX], B[MAX], F[MAX];
int N;

void add(int A[], int B[], int C[])
{
    int i, t = 0;
    for (i = 1; i <= A[0] || i <= B[0] || t; i++, t /= 10)
        C[i] = (t += A[i] + B[i]) % 10;
    C[0] = i - 1;
}
void atr(int A[], int X)
{
    A[0] = 0;
    while (X)
    {
        ++A[0];
        A[A[0]] = X % 10;
        X /= 10;
    }
}
void atrh(int A[], int B[])
{
    for (int i = 0; i <= B[0]; ++i) A[i] = B[i];
}
void write(int A[])
{
    for (int i = A[0]; i > 0; i--) printf("%d",A[i]);
    printf("\n");
}
int main()
{
    freopen(FIN, "r", stdin);
    freopen(FOU, "w", stdout);

    scanf("%d", &N);

    atr(A, 1), atr(B, 1);

    if ( N == 1 || N == 2 ) atrh(F, A);
    else
        for (int i = 3; i <= N + 1; ++i)
            add(A, B, F), atrh(A, B), atrh(B, F);

    write(F);

    return 0;
}