Cod sursa(job #257601)

Utilizator jeanFMI - Petcu Ion Cristian jean Data 13 februarie 2009 17:42:01
Problema Patrate2 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<fstream.h>

int a[1000],c[1000],s[1000],b,x,i,t,j;

int main()

{

ifstream f("patrate2.in");
ofstream g("patrate2.out");

f>>b;


s[0]=1; s[1]=1;
a[0]=1; a[1]=2;

while(b)

 {


   if(b%2)

    {  for(i=1; i<=a[0]; i++)

	 {

	    for(t=0,j=1;j<=s[0]||t;j++,t/=10)

	     c[i+j-1]=(t+=c[i+j-1]+a[i]*s[j])%10;

	      if(i+j-2>c[0]) c[0]=i+j-2;
	  }

       for(i=0;i<=c[0];i++)

	s[i]=c[i];

       for(i=1;i<=c[0];i++) c[i]=0; c[0]=0;
     }

   for(i=1; i<=a[0]; i++)

	 {

	    for(t=0,j=1;j<=a[0]||t;j++,t/=10)

	     c[i+j-1]=(t+=c[i+j-1]+a[i]*a[j])%10;

	      if(i+j-2>c[0]) c[0]=i+j-2;
	  }

       for(i=0;i<=c[0];i++)

	a[i]=c[i];

     for(i=1;i<=c[0];i++) c[i]=0; c[0]=0;

   b/=2;
 }

for(i=s[0];i>0;i--) g<<s[i];

f.close();
g.close();

return 0;
}