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 miniBB中文乱码问题解决方法
Nov 25 PHP
php adodb介绍
Mar 19 PHP
php新建文件自动编号的思路与实现
Jun 27 PHP
php array_filter除去数组中的空字符元素
Jun 21 PHP
PHP获取当前页面完整URL的实现代码
Jun 10 PHP
PHP函数extension_loaded()用法实例
Jan 19 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
May 28 PHP
laravel学习教程之关联模型
Jul 30 PHP
php封装的验证码工具类完整实例
Oct 19 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
phpStudy配置多站点多域名和多端口的方法
Sep 01 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
Jan 26 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
文章推荐系统(三)
2006/10/09 PHP
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
php获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
PHP 访问数据库配置通用方法(json)
2018/05/20 PHP
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
微信小程序-消息提示框实例
2016/11/24 Javascript
vue实现组件之间传值功能示例
2018/07/13 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
小程序清理本地缓存的方法
2018/08/17 Javascript
详解JavaScript 新语法之Class 的私有属性与私有方法
2019/04/23 Javascript
Vue执行方法,方法获取data值,设置data值,方法传值操作
2020/08/05 Javascript
vue的webcamjs集成方式
2020/11/16 Javascript
Python迭代用法实例教程
2014/09/08 Python
python实现上传样本到virustotal并查询扫描信息的方法
2014/10/05 Python
python 网络编程详解及简单实例
2017/04/25 Python
python之django母板页面的使用
2018/07/03 Python
Pandas 按索引合并数据集的方法
2018/11/15 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
PyCharm下载和安装详细步骤
2019/12/17 Python
Python Tkinter Entry和Text的添加与使用详解
2020/03/04 Python
Python-for循环的内部机制
2020/06/12 Python
NBA欧洲商店(法国):NBA Europe Store FR
2016/10/19 全球购物
美国嘻哈首饰购物网站:Hip Hop Bling
2016/12/30 全球购物
手工制作的男士奢华英国鞋和服装之家:Goodwin Smith
2019/06/21 全球购物
会计主管岗位职责范文
2013/11/08 职场文书
培训讲师邀请函
2014/01/10 职场文书
文明美德伴我成长演讲稿
2014/05/12 职场文书
服务宗旨标语
2014/07/01 职场文书
2014单位领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
python 中的jieba分词库
2021/11/23 Python
MySQL 外连接语法之 OUTER JOIN
2022/04/09 MySQL