Cod sursa(job #1675998)

Utilizator crion1999Anitei cristi crion1999 Data 5 aprilie 2016 17:57:10
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.27 kb
#include <iostream>
#include <fstream>


using namespace std;

char nr1[200],nr2[200];
void adun1()
{
    int i;
    for( i=1;i<=max(nr1[0],nr2[0]);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;
    for( i=1;i<=max(nr1[0],nr2[0]);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()
{
    ifstream fi("nunta.in");
    ofstream fo("nunta.out");
    int n,i;
    fi>>n;
    nr1[0]=1;
    nr2[0]=1;
    nr2[1]=2;
    nr1[1]=1;
    if(n==1)
        fo<<nr1[1];
    else if(n==2)
        fo<<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--)
            fo<<(int)nr2[j];
    }
    else
    {
        for(int j=nr1[0];j>=1;j--)
            fo<<(int)nr1[j];
    }
    }
    fo.close();
    fi.close();
}