您的位置:首页 > 其它

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

2011-10-12 15:15 591 查看
想必大家都对“兔子生兔子”问题有所耳闻,在这里,小弟也不卖关子,直接进入正题!

“兔子生兔子”的问题是这样的: 有一只神奇的兔子,它可以靠自己就可以生兔子!但有个时间的规定,它出生后的第三个月开始才可以生一只兔子,但此后的每个月都可以生一只兔子,而且更神奇的是,它所生的兔子竟然跟它有一模一样的魔力!你懂的,这就是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;

}

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

当然,递归算法在很多实际问题中并不推荐使用,因为它是无底洞式的在消耗栈空间!这里只是基于尽可能简洁的代码的考虑,望大家互相交流~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: