Cod sursa(job #560027)

Utilizator Adrian1007Gheorghe Adrian Dumitru Adrian1007 Data 18 martie 2011 11:55:58
Problema Al k-lea termen Fibonacci Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<stdio.h>
int n,a[100000],b[100000],c[100000];
void adunare()
{
	int k=0,s=0,i,r=0,s3=1,nr=1,z=0,j;
	freopen("kfib.out","w",stdout);
	a[0]=1;
	b[0]=1;
	a[++k]=1;
	b[++s]=0;
	while(s3)
	{
		for(i=1;i<=k;i++)
			c[i]=a[i];
		for(i=b[0]+1;i<=a[0];i++)
			b[i+1]=0;
		for(i=1;i<=a[0];i++)
	    {
			a[i]=a[i]+b[i]+r;
		    r=a[i]/10;
			a[i]=a[i]%10;
	    }
		if(r)
		{
			a[++a[0]]=r;
			r=0;
			k++;
		}
		nr++;
		if(nr==n)
		{
			for(j=k;j>=1;j--)
				printf("%d",a[j]);
			s3=0;
		}
		for(i=1;i<=k;i++)					
			b[i]=c[i];

	}
}
int main()
{
	freopen("kfib.in","r",stdin);
	freopen("kfib.out","w",stdout);
	scanf("%d",&n);
	adunare();
}