Cod sursa(job #156514)

Utilizator MirageRobert Sandu Mirage Data 12 martie 2008 16:42:33
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
int f1[300],f2[300],f3[300];
void transf(int a[300], int b[300]){
	int i;
	for(i=1;i<=a[0];++i)
		b[i]=a[i];
	for(i=a[0]+1;i<=b[0]+1;++i)
		b[i]=0;
	b[0]=a[0];
}
int main () {
	freopen("nunta.in","r",stdin);
	freopen("nunta.out","w",stdout);
	int n,i,t;
	scanf("%d",&n);
	if(n<2)
		printf("%d\n",n);
	else{
		f1[0]=f2[0]=1;
		f1[1]=1;
		f2[1]=2;
		n-=2;
		while(n){
			t=0;
			for (i=1; i<=f1[0] || i<=f2[0] || t; i++, t/=10)
				f1[i] = (t += f1[i] + f2[i]) % 10;
			f1[0]=i-1;
			transf(f1,f3);
			transf(f2,f1);
			transf(f3,f2);
			--n;
		}
	}
	for(i=f3[0];i>0;--i)
		printf("%d",f3[i]);
	return 0;
}