Cod sursa(job #120638)

Utilizator TabaraTabara Mihai Tabara Data 6 ianuarie 2008 01:14:17
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
/*

*/
#include <stdio.h>
#include <mem.h>

#define in "nunta.in"
#define out "nunta.out"
#define NMAX //dimensiune


void ADD(int A[], int B[] );
int A[501], B[501], C[1001];;
int n;

int main()
{
    freopen( in, "r", stdin );
    freopen( out, "w", stdout );
    int i, k;
    scanf( "%d", &n );
    A[0] = 1; A[1] = 1; B[0] = 1; B[1] = 1;
    
    for ( k = 1; k <= n; ++k )
    {
        ADD( A, B);
        //B preia forma lui A si A forma lui B
        memset( C, 0, sizeof(C) );
        C[0] = A[0];
        for ( i = 1; i <= A[0]; ++i )
            C[i] = A[i];
        memset( A, 0, sizeof(A) );
        A[0] = B[0];
        for ( i = 1; i <= B[0]; ++i )
            A[i] = B[i];
        memset( B, 0, sizeof(B) );    
        B[0] = C[0];
        for ( i = 1; i <= C[0]; ++i )
            B[i] = C[i];
    }
    for ( i = A[0]; i >= 1; --i )   
        printf( "%d", A[i] );        
    return 0;
}

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