Pagini recente » Cod sursa (job #1732548) | Cod sursa (job #1510740) | Cod sursa (job #1874525) | Cod sursa (job #2238170) | Cod sursa (job #2393852)
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int a[10005],b[10005],c[10005];
void h_adun(int a[],int b[],int c[])
{
int i,tr,aux;
memset(c,0,sizeof(c));
c[0]=max(a[0],b[0]);
tr=0;
for(i=1;i<=c[0];i++)
{
aux=a[i]+b[i]+tr;
c[i]=aux%10;
tr=aux/10;
}
if(tr)
c[++c[0]]=tr;
}
void h_mv(int a[],int b[])
{
int i;
memset(a,0,sizeof(a));
for(i=0;i<=b[0];i++)
a[i]=b[i];
}
int main()
{
freopen("fib.in","r",stdin);
freopen("fib.out","w",stdout);
char ch;
int n=2,i,cf=2;
a[0]=1;
b[0]=1;
a[1]=1;
b[1]=1;
scanf("%d",&n);
while(0==0)
{
h_adun(a,b,c);
cf+=c[0];
if(cf>=n)
{
n=c[cf-n+1];
break;
}
h_mv(a,b);
h_mv(b,c);
}
printf("%d",n);
return 0;
}