用递归方法求fibonacci级数,递归求Fabonacci数列
如果我们仔细观察,就会发现向日葵盘内的种子形成两组螺旋线,一组是顺时针的,另一组是逆时针的。
而这两组螺旋线的条数刚好是两个相邻的斐波那契数,小向日葵是34和55,大向日葵是144和233。
松果种子、菜花表面也有类似的规律。
有科学家认为:这种排列可以使得种子的堆积最密集,最有利于植物繁衍后代。
八百年来,人们在各个领域都发现了斐波那契数列。
尤其是十九世纪开始,人们发现了斐波那契数列在计算机、物理、化学等领域的应用,这个古老的数列焕发了新的青春。
1963年,斐波那契协会成立,并出版了《斐波那契季刊》 用以刊登与斐波那契数列相关的研究成果。
代码实现基本循环算法#包括输入输出流
#包括cstdio
使用命名空间标准
int main(){
int a=0,b=1,c=1,n;
CIN n;//输入n
for(int I=3;I=n;i ){
a=b;
b=c;
c=a b;
}
cout c;//输出最终结果
返回0;
}递归算法实现#包括输入输出流
#包括cstdio
使用命名空间标准
int f(int n){
如果(n==0)返回0;
如果(n==1)返回1;
如果(n=2){
返回f(n-1)f(n-2);
}
}
int main(){
int n;
CIN n;
printf(%d ,f(n));
返回0;
}递归算法优化(记忆化搜索)#包含输入输出流
#包括cstdio
#定义最大值(101)
使用命名空间标准
int a[MAX];
int f(int n){
如果(a[n]!=-1)返回一个[n];
否则{
a[n]=f(n-1)f(n-2);
返回a[n];
}
}
int main(){
int n;
CIN n;
for(int I=0;I=MAX-1;i ){ //初始化
a[I]=-1;
}
a[0]=0;a[1]=1;
printf(%d ,f(n));
返回0;
}高精度计算#包括输入输出流
#包括字符串
使用命名空间标准
char sum[1200];
int s=0,m=0,n;
int main()
{
CIN n;
字符串s1、S2;
int a[1200],b[1200],he,I;
S1=" 0 ";s2= 1
for(m=2;m n;m)
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
a[0]=S1。长度();
for(I=1;I=a[0];我)
a[I]=S1[a[0]-I]-0;
b[0]=S2。长度();
for(I=1;I=b[0];我)
b[I]=S2[b[0]-I]-0;
他=(a[0] b[0]?a[0]:b[0]);
for(I=1;我=他;我)
{
a[I]=b[I];
a[I 1]=a[I]/10;
a[I]%=10;
}
何;
而((a[他]==0)(he 1))he-;
for(i=he,s=0;I=1;i -,s)
sum[s]=a[I] 0 ;
s1=s2
s2=总和;
}
cout s2 endl
返回0;
}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。