Cod sursa(job #344338)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 29 august 2009 18:36:16
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <stdio.h>

FILE *f,*s;

int n,i,j,v1[1000],v2[1000],v3[1000];

void suma(int x[1000], int y[1000])
{
    int T=0;
     
    if(y[0]>x[0])
    {
        for (i=x[0]+1; i<=y[0]; i++) 
			x[i]=0;
		
        x[0]=y[0];
    }
    else   
        for (i=y[0]+1; i<=x[0]; i++) 
			y[i]=0;
     
    for (i=y[0]+1; i<=x[0]; i++) 
		y[i]=0;
     
    for (i=1;i<=x[0];i++)
    {
        x[i]+=y[i]+T;
        T=x[i]/10;
        x[i]%=10;
    }
     
    if (T)
    {
        x[0]++;
        x[x[0]]=T;
    }
}

void copiere(int H[1000],int X[1000]) 
{
  for (i=0;i<=X[0];++i) 
    H[i] = X[i];
}

int main()
{
	f=fopen("nunta.in","r");
	s=fopen("nunta.out","w");
	
	fscanf(f,"%d",&n);
	
	v1[0]=1;
	v1[1]=0;
	
	v2[0]=1;
	v2[1]=1;
	
	for(j=2;j<=n;j++)
	{
		for(i=1;i<=v3[0];i++)
			v3[i]=0;
		
		suma(v3,v1);
		suma(v3,v2);
	
		copiere(v1,v2);
		copiere(v2,v3);
	}	
	
	for(i=v3[0];i>0;i--)
		fprintf(s,"%d",v3[i]); 
	fprintf(s,"\n\n");
	
	fclose(s);
	
	return 0;
}