Cod sursa(job #1676042)

Utilizator crion1999Anitei cristi crion1999 Data 5 aprilie 2016 18:17:27
Problema Nunta Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.38 kb
#include <cstdio>

char nr1[200],nr2[200];
void adun1()
{
    int i,maxx;
    if(nr1[0]>nr2[0])
        maxx=nr1[0];
    else
        maxx=nr2[0];
    for( i=1;i<=maxx;i++)
    {
        nr1[i]=nr1[i]+nr2[i];
         if(nr1[i]/10!=0)
        {
            nr1[i+1]+=nr1[i]/10;
            nr1[i]%=10;
        }
    }
        nr1[0] = i - 1;
        if(nr1[i]!=0)
            nr1[0]++;
}
void adun2()
{
    int i,maxx;
    if(nr1[0]>nr2[0])
        maxx=nr1[0];
    else
        maxx=nr2[0];
    for( i=1;i<=maxx;i++)
    {
        nr2[i]=nr1[i]+nr2[i];
         if(nr2[i]/10!=0)
        {
            nr2[i+1]+=nr2[i]/10;
            nr2[i]%=10;
        }
    }
        nr2[0] = i - 1;
        if(nr2[i]!=0)
            nr2[0]++;
}

int main()
{
    freopen("nunta.in", "r", stdin);
    freopen("nunta.out", "w", stdout);
    int n,i;
    scanf ("%d", &n);
    nr1[0]=1;
    nr2[0]=1;
    nr2[1]=2;
    nr1[1]=1;
    if(n==1)
        printf("%d", nr1[1]);
    else if(n==2)
        printf("%d", nr2[1]);
    else
    {
    for( i=3;i<=n;i++)
    {
        if(i%2!=0)
            adun1();
        else
            adun2();
    }

    if((i-1)%2==0)
    {
        for(int j=nr2[0];j>=1;j--)
            printf("%d", nr2[j]);
    }
    else
    {
        for(int j=nr1[0];j>=1;j--)
            printf("%d", nr1[j]);
    }
    }

}