Cod sursa(job #1195092)

Utilizator zacuscaAlex Iordache zacusca Data 6 iunie 2014 09:24:16
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
using namespace std;
ifstream in("nunta.in");
ofstream out("nunta.out");
int A[250],B[250],C[250],n;
void cpy(int A[], int B[])
{
    A[0]=B[0];
    for(int i=1;i<=A[0];i++)
    A[i]=B[i];
}
void add(int A[],int  B[])
{ int i,T=0;

  if (B[0]>A[0])
    { for (i=A[0]+1;i<=B[0];) A[i++]=0;
      A[0]=B[0];
    }
    else for (i=B[0]+1;i<=A[0];) B[i++]=0;
  for (i=1;i<=A[0];i++)
    { A[i]+=B[i]+T;
      T=A[i]/10;
      A[i]%=10;
    }
  if (T) A[++A[0]]=T;
}
int main()
{
    in>>n;
    A[0]=A[1]=B[0]=1;
    B[1]=2;
    if(n<3)out<<n<<'\n';
    for(int i=1;i<=n-2;i++)
    {
        cpy(C,B);
        add(B,A);
        cpy(A,C);
    }
    for(int i=B[0];i;i--)
    out<<B[i];
    out.close();
    return 0;
}