Cod sursa(job #2393852)

Utilizator REDCRAFTPadure Damian REDCRAFT Data 1 aprilie 2019 09:46:01
Problema Next Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#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;
}