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提示无法加载或mcrypt没有找到 PHP 扩展 mbstring解决办法
Mar 27 PHP
wordpress自定义url参数实现路由功能的代码示例
Nov 28 PHP
叫你如何修改Nginx与PHP的文件上传大小限制
Sep 10 PHP
thinkphp特殊标签用法概述
Nov 24 PHP
php缓冲输出实例分析
Jan 05 PHP
php使用CURL伪造IP和来源实例详解
Jan 15 PHP
在html文件中也可以执行php语句的方法
Apr 09 PHP
php无限级分类实现方法分析
Oct 19 PHP
使用PHPMailer发送邮件实例
Feb 15 PHP
PHP7多线程搭建教程
Apr 21 PHP
PHP设计模式之原型设计模式原理与用法分析
Apr 25 PHP
php png失真的原因及解决办法
Nov 17 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
VIM中设置php自动缩进为4个空格的方法详解
2013/06/14 PHP
PHP统计二维数组元素个数的方法
2013/11/12 PHP
destoon利用Rewrite规则设置网站安全
2014/06/21 PHP
php关键字仅替换一次的实现函数
2015/10/29 PHP
yii2中添加验证码的实现方法
2016/01/09 PHP
PHP购物车类Cart.class.php定义与用法示例
2016/07/20 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
2017/01/13 PHP
PHP PDOStatement::nextRowset讲解
2019/02/01 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
IE8 chrome中table隔行换色解决办法
2010/07/09 Javascript
jquery 单击li防止重复加载的实现代码
2010/12/24 Javascript
JavaScript 基础篇(一)
2012/03/30 Javascript
javascript 在firebug调试时用console.log的方法
2012/05/10 Javascript
window.location.href = window.location.href 跳转无反应 a超链接onclick事件写法
2013/08/21 Javascript
jquery实现浮动的侧栏实例
2015/06/25 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
javascript显示上周、上个月日期的处理方法
2016/02/03 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
bootstrap导航栏、下拉菜单、表单的简单应用实例解析
2017/01/06 Javascript
js实现漫天星星效果
2017/01/19 Javascript
vue-router 学习快速入门
2017/03/01 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
2017/03/07 Javascript
python 切片和range()用法说明
2013/03/24 Python
Python实现的一个简单LRU cache
2014/09/26 Python
python 实现一次性在文件中写入多行的方法
2019/01/28 Python
对Tensorflow中tensorboard日志的生成与显示详解
2020/02/04 Python
python递归函数用法详解
2020/10/26 Python
Python模拟键盘输入自动登录TGP
2020/11/27 Python
利用canvas实现图片压缩的示例代码
2018/07/17 HTML / CSS
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
巴西最大的珠宝连锁店:Vivara
2019/04/18 全球购物
DeinDesign德国:设计自己的手机壳
2019/12/14 全球购物
电影T恤、80年代T恤和80年代服装:TV Store Online
2020/01/05 全球购物
外企财务年会演讲稿
2014/01/03 职场文书
《鞋匠的儿子》教学反思
2014/03/02 职场文书
专业技术人员年度考核评语
2014/12/31 职场文书