Cod sursa(job #358292)

Utilizator eudanipEugenie Daniel Posdarascu eudanip Data 22 octombrie 2009 16:35:46
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<stdio.h>
int n,v1[501],v2[501],v3[501];
void cpy(int d[501],int s[501])
{
    for(int i=s[0];i>=0;i--)
        d[i]=s[i];
}
void add(int a[501],int b[501],int c[501])
{
    int max,i,t=0;
    if(a[0]>b[0])
        max=a[0];
    else
       max=b[0];
    for(i=1;i<=max || t; i++)
    {
        if (i > a[0]) a[i] = 0;
        if (i > b[0]) b[i] = 0;
        c[i]=(a[i]+b[i]+t)%10;
        t=(a[i]+b[i]+t)/10;
    }
    c[0]=i-1;
}

int main ()
{
    int i;
    
    freopen("nunta.in","r",stdin);
    freopen("nunta.out","w",stdout);
    scanf("%d",&n);
    if(n==1)
    {
         printf("1\n");
         return 0;
    }
    if(n==2)
    {
        printf("2\n");
        return 0;
    }
    v1[0] = v1[1] = 1;
    v2[0] = v2[1] = 1;

    for(i=2;i<=n;i++)
    {
        add(v1,v2,v3);
        cpy(v1,v2);
        cpy(v2,v3);
    }
    for(i=v3[0];i>=1;i--)
       printf("%d",v3[i]);
    printf("\n");

    return 0;
}