Cod sursa(job #157024)

Utilizator DraStiKDragos Oprica DraStiK Data 12 martie 2008 20:32:29
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <stdio.h>
int n;
int a[1001],b[1001],c[1001];
void fibonacci ()
{
     int i,j,max,t;
     scanf ("%d",&n);
     if (n==1 || n==2)
     {
        printf ("%d",n);return ;
     }
     a[0]=1;
     a[1]=1;
     b[0]=1;
     b[1]=2;
     for (j=3; j<=n; ++j)
     {
         max=a[0]>=b[0]?a[0]:b[0];
         t=0;
         for (i=1; i<=max; ++i)
	     {
		     c[i]=(a[i]+b[i]+t)%10;
		     t=(a[i]+b[i]+t)/10;
         }
	     if (t)
	        c[++max]=1;
         c[0]=max;
		 for (i=0; i<=b[0]; ++i)
			 a[i]=b[i];
		 for (i=0; i<=c[0]; ++i)
             b[i]=c[i];
     }
     for (i=c[0]; i>=1; --i)
             printf ("%d",c[i]);
}
int main ()
{
	freopen ("nunta.in","r",stdin);
	freopen ("nunta.out","w",stdout);
	fibonacci ();
	return 0;
}