LivterJA

如果大家有看到我写的不完善的地方还希望不吝赐教

导航

用面向对象的方式解决经典的“三月兔”的问题

  这是一个经典问题:有一对兔子,从出生后第三个月开始,每个月都生一对兔子,然后生出来的兔子也从出生第三个月开始每个月生一对兔子,假如兔子都不死,问每个月兔子总数是多少。

  这个问题其实是一个斐波纳切数列,主要考虑递归的用法,这道题的"标准答案"就是用递归的方式来解决:

 

  然而,这么做其实并不是按面向对象的思路来解决的。这是先画出表格,然后找出数字的排列规律,然后再写公式。

  对于这种问题,我还是喜欢用面向对象的思路来解决它。

  如果要以面向对象的思路来做,应该写一个兔子的对象,然后根据它的繁殖规律进行繁殖,下面就是按照面向对象思路来解决这个问题:

 

这样的话,不管这个兔子从第几个月开始生几只小兔子,都可以通过修改构造函数来解决了。

posted on 2015-08-19 23:27  LivterJA  阅读(370)  评论(0编辑  收藏  举报