Cod sursa(job #182278)

Utilizator raduzerRadu Zernoveanu raduzer Data 20 aprilie 2008 17:33:51
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <stdio.h>

int n,i,j,a[2][1010],b[1010],p;

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


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