Cod sursa(job #418005)

Utilizator Cristi09Cristi Cristi09 Data 15 martie 2010 11:55:59
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<stdio.h>
int a[500],b[500],c[500],n;
void add(int A[], int B[])
{
      int i, t = 0;
      for (i=1; i<=A[0] || i<=B[0] || t; i++, t/=10)
              A[i] = (t += A[i] + B[i]) % 10;
      A[0] = i - 1;
}
void Add(int x[],int y[])
{
	int val=0,xi,yi;
	xi=1;
	yi=1;
	for(;xi<=x[0]&&yi<=y[0];++xi,++yi)
	{
		x[xi]+=val;
		val=0;
		val=x[xi]+y[yi];
		x[xi]=val%10;
		val/=10;
	}
	while(val)
	{
		x[xi]+=val;
		val=x[xi]/10;
		x[xi]=x[xi]%10;
		++xi;
	}
	x[0]=xi-1;
}
void read(int x[])
{
	int nrc,i=1;
	scanf("%d",&nrc);
	x[0]=nrc;
	for(;i<=nrc;++i)
		scanf("%d",&x[i]);
}
void afis(int x[])
{
	FILE*g=fopen("nunta.out","w");
	int i=x[0];
	for(;i>0;--i)
		fprintf(g,"%d",x[i]);
}
void copy(int dest[],int sursa[])
{
	dest[0]=sursa[0];
	int i=1;
	for(;i<=dest[0];++i)
		dest[i]=sursa[i];
}
int main()
{
	FILE*f=fopen("nunta.in","r");
	fscanf(f,"%d",&n);
	fclose(f);
	//++n;
	a[0]=1;a[1]=0;
	b[0]=1;b[1]=1;
	while(n)
	{
		--n;
		copy(c,a);
		copy(a,b);
		add(b,c);
	}
	afis(b);
	return 0;
}