现在的位置: 首页 > 综合 > 正文

兔子生兔子问题 (斐波那契数列变种)

2017年10月12日 ⁄ 综合 ⁄ 共 565字 ⁄ 字号 评论关闭

 想必大家都对“兔子生兔子”问题有所耳闻,在这里,小弟也不卖关子,直接进入正题!

“兔子生兔子”的问题是这样的: 有一只神奇的兔子,它可以靠自己就可以生兔子!但有个时间的规定,它出生后的第三个月开始才可以生一只兔子,但此后的每个月都可以生一只兔子,而且更神奇的是,它所生的兔子竟然跟它有一模一样的魔力!你懂的,这就是C++中的继承!

 

现在我们需要用尽可能简洁的代码完成“兔子生兔子”的问题,以下是小弟的解法:

#include<iostream>
using namespace std;

#define MONTH  5

int Feibo(int month)
{
 int total = 1;
 if(month>=3)
    total = Feibo(month-1)+Feibo(month-2);
 return total;
}

void main()
{
 int total = 0;
 total = Feibo(MONTH);
 cout<<"total is: "<<total<<endl;
}

你是不是觉得这个算法似曾相识?没错~ 它就是经典的斐波那契数列!估计当时斐波那契家里就是养了这么一个神奇的兔子,然后...然后...你懂的,呵呵,小小玩笑。

当然,递归算法在很多实际问题中并不推荐使用,因为它是无底洞式的在消耗栈空间!这里只是基于尽可能简洁的代码的考虑,望大家互相交流~

抱歉!评论已关闭.