PHP基于递归算法解决兔子生兔子问题


Posted in PHP onMay 11, 2018

本文实例讲述了PHP基于递归算法解决兔子生兔子问题。分享给大家供大家参考,具体如下:

接到面试通知辗转反侧,一直在默念明天改如何介绍自己的项目经验等。

早早的起床,洗漱,把自己的总结的问题自问自答了一些。

匆匆吃了早饭,挤进让人面目狰狞的地铁,此时什么都不顾,只盼着赶紧下地铁。终于提前半小时到了面试地点,再次拿出准备的问题看了几眼,还剩15分钟上去。跟着人力填了表格,然后给了我一个算法题。

如下有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,请编程输出两年内每个月的兔子总数为多少?

忽然记起来,这道题之前的一个朋友跟我谈论过,思路是一样的。

第一种方法(for循环实现):

<?php
  function getResult($month){
   $one = 1; //第一个月兔子的对数
   $two = 1; //第二个月兔子的对数
   $sum = 0; //第$month个月兔子的对数
   if($month < 3){
     return ;
     }
   for($i = 2;$i < $month; $i++){
     $sum = $one + $two;
     $one = $two;
     $two = $sum;
   }
   echo $month.'个月后共有'.$sum.'对兔子';
  }
//测试:
getResult(8)
//输出:8个月后共有21对兔子

第二种方法(递归):

<?php
function fun($n){
  if($n == 1 || $n == 2){
    return 1;
  }else{
    return fun($n-1)+fun($n-2);
  }
}
//测试:
echo fun(8)
//输出:21

事后,也去网上查了一下,但是大多数代码示例都是C语言、c++、java等等语言的。并没有太多PHP相关的代码示例,这两种方法,希望可以帮到大家。

其实整个面试过程挺紧张,好在最后完成的挺漂亮。这不,复试通知来了,感谢那个千锋PHP哥们。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
编写自己的php扩展函数
Oct 09 PHP
调试一段PHP程序时遇到的三个问题
Jan 17 PHP
PHP Cookie的使用教程详解
Jun 03 PHP
浅析PHP 按位与或 (^ 、&amp;)
Jun 21 PHP
php实现telnet功能示例
Apr 08 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
Aug 21 PHP
Linux系统递归生成目录中文件的md5的方法
Jun 29 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
Dec 02 PHP
功能强大的php分页函数
Jul 20 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
Oct 08 PHP
Yii框架弹出框功能示例
Jan 07 PHP
Laravel自动生成UUID,从建表到使用详解
Oct 24 PHP
PHP7如何开启Opcode打造强悍性能详解
May 11 #PHP
laravel项目利用twemproxy部署redis集群的完整步骤
May 11 #PHP
PHP实现搜索时记住状态的方法示例
May 11 #PHP
PHP实现压缩图片尺寸并转为jpg格式的方法示例
May 10 #PHP
PHP使用PDO抽象层获取查询结果的方法示例
May 10 #PHP
PHP分页显示的方法分析【附PHP通用分页类】
May 10 #PHP
ThinkPHP防止重复提交表单的方法实例分析
May 10 #PHP
You might like
ecshop 2.72如何修改后台访问地址
2015/03/03 PHP
thinkPHP分组后模板无法加载问题解决方法
2016/07/12 PHP
客户端脚本中常常出现的一些问题和调试技巧
2007/01/09 Javascript
修改jquery.lazyload.js实现页面延迟载入
2010/12/22 Javascript
AJAX 网页保留浏览器前进后退等功能
2011/02/12 Javascript
js函数参数设置默认值的一种变通实现方法
2014/05/26 Javascript
jQuery中detach()方法用法实例
2014/12/25 Javascript
JavaScript数据类型之基本类型和引用类型的值
2015/04/01 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
2015/05/18 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
Web安全测试之XSS实例讲解
2016/08/15 Javascript
JavaScript实现定时页面跳转功能示例
2017/02/14 Javascript
vue-cli 组件的导入与使用教程详解
2018/04/11 Javascript
ES6关于Promise的用法详解
2018/05/07 Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
2018/09/26 Javascript
vue计算属性computed的使用方法示例
2019/03/13 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
Js利用正则表达式去除字符串的中括号
2020/11/23 Javascript
[14:03]2017DOTA2亚洲邀请赛开幕式:12神兵演绎水墨中华
2017/04/01 DOTA
python for和else语句趣谈
2019/07/02 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
flask 实现上传图片并缩放作为头像的例子
2020/01/09 Python
基于Python绘制个人足迹地图
2020/06/01 Python
Python 代码调试技巧示例代码
2020/08/11 Python
HTML5在IE10、火狐下中文乱码问题的解决方法
2013/11/18 HTML / CSS
阿拉伯世界最大的电子卖场:Souq埃及
2016/08/01 全球购物
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
构造器Constructor是否可被override?
2013/08/06 面试题
应届专科生个人的自我评价
2014/01/05 职场文书
《兰亭集序》教学反思
2014/02/11 职场文书
建筑结构施工求职信
2014/07/11 职场文书
学习十八大宣传标语
2014/10/09 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书
数据库的高级查询六:表连接查询:外连接(左外连接,右外连接,UNION关键字,连接中ON与WHERE的不同)
2021/04/05 MySQL