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 相关文章推荐
phpMyadmin 用户权限中英对照
Apr 02 PHP
批量修改RAR文件注释的php代码
Nov 20 PHP
php正则表达匹配中文问题分析小结
Mar 25 PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
Aug 25 PHP
PHP如何实现Unicode和Utf-8编码相互转换
Jul 29 PHP
如何使用php等比例缩放图片
Oct 12 PHP
php自定义截取中文字符串-utf8版
Feb 27 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
PHP实现随机数字、字母的验证码功能
Aug 01 PHP
PHP PDOStatement::errorCode讲解
Jan 31 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
Mar 25 PHP
Thinkphp5框架实现获取数据库数据到视图的方法
Aug 14 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
Search File Contents PHP 搜索目录文本内容的代码
2010/02/21 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
2012/09/25 PHP
深入php中var_dump方法的使用详解
2013/06/24 PHP
php递归删除目录下的文件但保留的实例分享
2014/05/10 PHP
PHP统计目录中文件以及目录中目录大小的方法
2016/01/09 PHP
jquery的$(document).ready()和onload的加载顺序
2010/05/26 Javascript
JQuery UI DatePicker中z-index默认为1的解决办法
2010/09/28 Javascript
js实时获取系统当前时间实例代码
2013/06/28 Javascript
点击弹出层效果&amp;弹出窗口后网页背景变暗效果的实现代码
2014/02/10 Javascript
Ext GridPanel加载完数据后进行操作示例代码
2014/06/17 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
js判断数组key是否存在(不用循环)的简单实例
2016/08/03 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
2016/12/05 Javascript
基于复选框demo(分享)
2017/09/27 Javascript
Vue 获取数组键名的方法
2018/06/21 Javascript
JSON字符串操作移除空串更改key/value的介绍
2019/01/05 Javascript
JS+canvas画布实现炫酷的旋转星空效果示例
2019/02/13 Javascript
[04:10]2016国际邀请赛中国区预选赛第二日TOP10精彩集锦
2016/06/28 DOTA
python编程开发之类型转换convert实例分析
2015/11/13 Python
利用python代码写的12306订票代码
2015/12/20 Python
Python 的描述符 descriptor详解
2016/02/27 Python
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
2016/03/30 Python
Python中一行和多行import模块问题
2018/04/01 Python
Python 实现opencv所使用的图片格式与 base64 转换
2020/01/09 Python
Python hashlib常见摘要算法详解
2020/01/13 Python
python numpy生成等差数列、等比数列的实例
2020/02/25 Python
Python中如何添加自定义模块
2020/06/09 Python
美国在线咖啡、茶和餐厅供应商:LollicupStore
2018/05/04 全球购物
Big Green Smile德国网上商店:提供各种天然产品
2018/05/23 全球购物
Java中的基本数据类型所占存储空间大小固定的吗
2012/02/15 面试题
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
小学生母亲节演讲稿
2014/05/07 职场文书
财务负责人任命书
2014/06/06 职场文书
甜品店创业计划书
2014/09/21 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS
Python实现制作销售数据可视化看板详解
2021/11/27 Python