Pagini recente » Cod sursa (job #1902391) | Cod sursa (job #735303) | Cod sursa (job #1623293) | Cod sursa (job #1937024) | Cod sursa (job #115698)
Cod sursa(job #115698)
#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;
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;
}