Cod sursa(job #425884)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 26 martie 2010 11:09:58
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>
#include<string.h>
FILE*f=fopen("nunta.in","r");
FILE*g=fopen("nunta.out","w");
int max(int a,int b){
	if(a<b)
		a=b;
	return a;
}
int n,aux,i,j,s;
int t,s1[1005],s2[1005],s3[1005];

int main () {
	fscanf(f,"%d",&n);
	s1[1]=1; s1[0]=1;
	s2[1]=2; s2[0]=1;
	for(i=3;i<=n;i++){
		t=0;
		aux=max(s1[0],s2[0]);
		for(j=1;j<=aux;j++){
			s3[j]=(s1[j]+s2[j]+t)%10;
			t=(s1[j]+s2[j]+t)/10;
		}
		s3[0]=aux;
		if(t!=0){
			s3[++s3[0]]=t;
		}
		memcpy(s1,s2,sizeof(s2));
		memcpy(s2,s3,sizeof(s3));
		memset(s3,0,sizeof(s3));
	}
	
	if(n==1)
		fprintf(g,"1");
	else
		if(n==2)
			fprintf(g,"2");
		else
			for(i=s2[0];i>=1;i--)
				fprintf(g,"%d",s2[i]);
	
	fclose(f);
	fclose(g);
	return 0;
}