Cod sursa(job #239786)

Utilizator jupanubv92Popescu Marius jupanubv92 Data 5 ianuarie 2009 20:44:13
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<stdio.h>

int a[1001],b[1001],c[1001];

void Add(int A[1001], int B[1001])
{ 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;
 }

void initi(int x[1001],int y[1001])
{
    for(int i=0;i<=y[0];i++)
       x[i]=y[i];
}

int main()
{
    freopen("nunta.in","r",stdin);
    freopen("nunta.out","w",stdout);
    int n;
    scanf("%d",&n);
    if(n==1)
     {printf("1\n");
      return 0;
     }
    a[0]=1;
    a[1]=1;
    b[0]=1;
    b[1]=1;
    for(int i=2;i<=n;i++)
     {initi(c,b);
      Add(b,a);
      initi(a,c);
     }
    for(int i=b[0];i>=1;i--)
      printf("%d",b[i]);
    printf("\n");
    return 0;
}