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

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值