#include<stdio.h>longlongint abc[100]= {0,1,2,3,5};
int sum=0,pos=4;//No.1longlongint fun();
longlongint fun(int n)
{
sum++;
longlongint x=0,y=0;
int k;
if (n<=pos) return abc[n];
else
{
abc[n]=fun(n-1)+fun(n-2);
return abc[n];
}
}
int main()
{
int a,i,j;
int n;
scanf("%d",&a);
while(a--)
{
scanf("%d",&n);
printf("times=%d;fun(n)=%lld\n",sum,fun(n));
}
}
2
#include<stdio.h>int sum=0;
long long int fun();
long long int fun(int n){
// F(2n+1)=F(n+1)*F(n+1)+F(n)*F(n)
// F(2n)=F(n+1)*F(n)+F(n)*F(n-1)=F(n+1)*F(n)+F(n)*(F(n+1)-F(n))
sum++;
long long intx=0,y=0;
int k;
if(n==1||n==2) return1;
elseif(n==3) return2;
elseif(n==4) return3;
else {
k=n/2;y=fun(k);
x=fun(k+1);
printf("k==%d,x==%lld,y===%lld\n",k,x,y);
if(n%2!=0) returnx*x + y*y;
elsereturn (2*x-y)*y;
}
}
int main()
{
int a;
int n;
scanf("%d",&a);
while(a--){
scanf("%d",&n);
printf("times=%d;fun(n)=%lld\n",sum,fun(n));
}
}