用递归算法实现斐波那契数列11235813的前

2021-02-21 14:46:19 字数 1321 阅读 8293

1楼:匿名用户

|#include

usingnamespacestd;

intf(intn)

returnf(n-1)+f(n-2);

}intmain()

else

}return0;

}运行结果内:容

2楼:匿名用户

#include

#include

usingnamespacestd;

intfibo(inti)

intmain()}

分别用非递归和递归的方法编写函数求斐波那契数列第n项。斐波那契数列1,1,2,3,5,8,13,…

3楼:墨汁诺

/**已知fibonacci数列:1,1,2,3,5,8,……,f(1)=1,f(2)=1,f(n)=f(n-1)+f(n-2)

*/#include

#include

typedef long long int int64;

//方法1,递归法

int64 fibonacci(int n)

if(n==1 || n==2)

return 1;

else

sum=fibonacci(n-1)+fibonacci(n-2);

return sum;

}非递归法

int64 fibonacci2(int n)

if(n==1 || n==2)

return 1;

a=b=1; //对前两项的值初始化

n=n-2; //因为是从第3项开始记次数,所以减2

while(n > 0)

return c;

}//测试主函数

int main()

//示例运行结果

f:\c_work>a.exe

5f(5)=5

f:\c_work>a.exe

6f(6)=8

program fibo;var n,i:integer; rs:extended;function fib(m:

integer):extended;var a,b:extended;

begin

a:=1;b:=1;if m<=2 then exit(1)else while m>3 do begin

fib:=a+b;a:=b;b:=fib;m:=m-1;end;exit(fib);end;

begin

read(n);writeln(fib(n));end.