Cod sursa(job #115701)

Utilizator FlorianFlorian Marcu Florian Data 16 decembrie 2007 20:39:57
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<stdio.h>
#include<string.h>
FILE*f=fopen("nunta.in","r");
FILE*g=fopen("nunta.out","w");
int a[300], b[300], c[318];
void adunare(int a[],int b[],int c[])
	{
	int i,t, n;
	t=0;
	if(a[0]>b[0]) n=a[0];
	else n=b[0];
	c[0]=n;
	for(i=1;i<=n;++i)
		{
		c[i]=(a[i]+b[i]+t)%10;
		t=(a[i]+b[i]+t)/10;
		}
	if(t>0) c[++c[0]]=t;
	}
void copy(int x[], int y[])
	{
	int i;
	if(y[0]>x[0]) memset(y,0,sizeof(y));
	for(i=0;i<=x[0];++i) y[i]=x[i];
	}
void fibo(int n)
	{
	int i;
	a[0]=1; a[1]=1;
	b[0]=1; b[1]=2;
	if(n==1) fprintf(g,"1");
	else if(n==2) fprintf(g,"2");
	for(i=3;i<=n;++i)
		{
		adunare(a,b,c);
		copy(b,a);
		copy(c,b);
		}
	}
int main()
	{
	int n;
	fscanf(f,"%d",&n);
       fibo(n);
       for(int i=c[0];i>=1;--i) fprintf(g,"%d",c[i]);
       return 0;
       }