您的位置:首页 > 其它

E-斐波那契数

2015-12-04 20:38 197 查看

1

#include<stdio.h>
long long int abc[100]= {0,1,2,3,5};
int sum=0,pos=4;//No.1

long long int fun();
long long int fun(int n)
{
sum++;
long long int x=0,y=0;
int k;
if (n<=pos) return abc
;
else
{
abc
=fun(n-1)+fun(n-2);
return abc
;
}
}
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 int x=0,y=0;
int k;
if(n==1||n==2)
a275
return 1;
else if(n==3) return 2;
else if(n==4) return 3;
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) return x*x + y*y;
else return (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));
}
}


3

#include<stdio.h>
int main()
{

int i,j,a,n;
long long int f1=1,f2=1,t;
while(a--)
{
f1=1;
f2=1;
scanf("%d",&n);
for(i=3; i<=n; i++)
{
t=f2+f1;
f1=f2;
f2=t;
}
printf("fun(n)=%lld\n",f2);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: