经典递归--C/C++斐波那契数列
*今天给大家带来最经典的递归——斐波那契数列*
一.什么是斐波那契数列?
斐波那契数列,又称黄金分割数列,最早是以兔子繁殖为例子…(数学源于生活嘛.哈哈),所以又称为“兔子数列”,例如:0,1, 1,2, 3,5, 8,13, 21… … 如图:
——————————————————————————————————————————————————
二.什么是递归(简述)?
C/C++允许函数自己调用它自己,这个调用过程称为递归。
——————————————————————————————————————————————————
三.程序分析
分析与图解
既然从上述得知什么是斐波那契数列后,那我们第一步就是分析; 1.若F(n)=0,则为0; 2.若F(n)中1<=n<=2,则都为1; 3.如果当n>2的时候很容易找到规律:若n=5,则F(n)=F(n-1)+F(n-2) 即:F(5)=F(4)+F(3):也就是从第三项开始,每一项等于它前两项之和
如图: 在数学上,斐波那契数列以如下被以递推的方法定义: F (0)=0, F (1)=1, F (n)= F (n - 1)+ F (n - 2)( n ≥ 2, n ∈ N*) ——————————————————————————————————————————————————
代码C/C++
斐波那契.c
#include<stdio.h> int cout = 0; int Feibo(int n) { if (n == 0) return 0 ; if (n == 1 || n == 2) return 1; else return Feibo(n - 1) + Feibo(n - 2); } int main() { int n = 0; scanf("%d",&n); int ret = Feibo(n); printf("%d ", ret); return 0; }
——————————————————————————————————————————————————
斐波那契.cpp
#include<iostream> using namespace std; int Feibo(int n) { if (n == 0) return 0 ; if (n == 1 || n == 2) return 1; else return Feibo(n - 1) + Feibo(n - 2); } int main() { int n = 0; cin >> n; int ret = Feibo(n); cout << ret << endl; return 0; }
下一篇:
位操作实现加减乘除四则运算