Cod sursa(job #331071)

Utilizator doru.nituNitu Doru Constantin doru.nitu Data 12 iulie 2009 16:00:52
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<stdio.h>

int a[3000],b[3000],i,j,n,m,aux[3000];

void copy( int a[],int b[])
{ 
  int i;
  for(i=1;i<=b[0];i++) a[i]=b[i];
  for(i=b[0]+1;i<=a[0];i++) a[i]=0;
  a[0]=b[0];
}

void add(int A[], int B[])
{
      int i, t = 0;
      for (i=1; i<=A[0] || i<=B[0] || t; i++, t/=10)
              A[i] = (t += A[i] + B[i]) % 10;
      A[0] = i - 1;
}

   


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