Cod sursa(job #115676)

Utilizator filipbFilip Cristian Buruiana filipb Data 16 decembrie 2007 20:06:46
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <stdio.h>
#include <string.h>

typedef int hugeNR[225];

int N;
hugeNR X1, X2, X3;

void aduna(hugeNR A, hugeNR B)
{
    int i, t = 0;

    for (i = 1; i <= A[0] || i <= B[0] || t; i++, t /= 10)
    {
        if (i > A[0]) A[i] = 0;
        if (i > B[0]) B[i] = 0;
        
        A[i] = (t += A[i]+B[i]) % 10;
    }
    A[0] = i-1;
}

void copie(hugeNR dest, hugeNR sursa)
{
    int i;

    for (i = 0; i <= sursa[0]; i++)
        dest[i] = sursa[i];
}

int main(void)
{
    int i;
    
    freopen("nunta.in", "r", stdin);
    freopen("nunta.out", "w", stdout);

    scanf("%d", &N);

    if (N == 1)
    {
        printf("1\n");
        return 0;
    }
    
    X1[0] = X1[1] = 1;
    X2[0] = X2[1] = 1;
    for (i = 1; i < N; i++)
    {
        copie(X3, X2);
        aduna(X2, X1);
        copie(X1, X3);
    }

    for (i = X2[0]; i >= 1; i--)
        printf("%d", X2[i]);

    return 0;
}