Pagini recente » Cod sursa (job #1929469) | Cod sursa (job #2698869) | Cod sursa (job #2453492) | Cod sursa (job #1911318) | Cod sursa (job #477631)
Cod sursa(job #477631)
#include <stdio.h>
#include <string.h>
#define LMax 500
char const IN[] ="nunta.in";
char const OUT[] ="nunta.out";
int N;
int F1[LMax],F2[LMax],Aux[LMax];
void sum(int *a,int *b)
{
int i,t;
t=0;
a[0]= (a[0]>b[0]) ? a[0] : b[0];
for (i=1;i<=a[0];i++)
{
t= (a[i]=a[i]+b[i]+t)/10;
a[i]%=10;
}
if (t)
a[++a[0]]=t;
}
void Calc()
{
int i;
F1[0]=F1[1]=1;
F2[0]=1;F2[1]=2;
for (i=3;i<=N;i++)
{
memcpy(Aux,F2,sizeof(F2));
sum(F2,F1);
memcpy(F1,Aux,sizeof(F1));
}
}
void scriere(int *a)
{
int i;
freopen(OUT,"w",stdout);
for(i=a[0];i>0;i--)
printf("%d",a[i]);
printf("\n");
fclose(stdout);
}
void citire()
{
freopen(IN,"r",stdin);
scanf("%d",&N);
fclose(stdin);
}
int main()
{
citire();
Calc();
if (N<=1)
scriere(F1);
else
scriere(F2);
return 0;
}