Cod sursa(job #1195095)

Utilizator zacuscaAlex Iordache zacusca Data 6 iunie 2014 09:31:48
Problema Nunta Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>
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()
{
    freopen("nunta.in","r",stdin);
    freopen("nunta.out","w",stdout);
    scanf("%d",&n);
    A[0]=A[1]=B[0]=1;
    B[1]=2;
    if(n<3)printf("%d",n);
    else for(int i=1;i<=n-2;i++)
    {
        cpy(C,B);
        add(B,A);
        cpy(A,C);
    }
    for(int i=B[0];i;i--)
    printf("%d",B[i]);
    return 0;
}