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面向对象全攻略 (八)重载新的方法
Sep 30 PHP
zend api扩展的php对象的autoload工具
Apr 18 PHP
PHP 第二节 数据类型之字符串类型
Apr 28 PHP
PHP系列学习之日期函数使用介绍
Aug 18 PHP
PHP实现HTML生成PDF文件的方法
Nov 07 PHP
PHP添加图片水印、压缩、剪切的封装类
Aug 17 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
Nov 09 PHP
PHP中set error handler函数用法小结
Nov 11 PHP
Laravel SQL语句记录方式(推荐)
May 26 PHP
Yii框架连接mongodb数据库的代码
Jul 27 PHP
使用composer 安装 laravel框架的方法图文详解
Aug 02 PHP
如何解决PHP获取不到SESSION信息之一般情况
Oct 10 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
frename PHP 灵活文件命名函数 frename
2009/09/09 PHP
全新的PDO数据库操作类php版(仅适用Mysql)
2012/07/22 PHP
php中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
PHP 二维数组根据某个字段排序的具体实现
2014/06/03 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
潜说js对象和数组
2011/05/25 Javascript
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
创建你的第一个AngularJS应用的方法
2015/06/16 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
JavaScript实现精美个性导航栏筋斗云效果
2017/10/29 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
vue实现自定义日期组件功能的实例代码
2018/11/06 Javascript
JavaScript中this函数使用实例解析
2020/02/21 Javascript
Javascript新手入门之字符串拼接与变量的应用
2020/12/03 Javascript
python采用django框架实现支付宝即时到帐接口
2016/05/17 Python
python urllib urlopen()对象方法/代理的补充说明
2017/06/29 Python
python+opencv实现动态物体追踪
2018/01/09 Python
Python爬虫实现验证码登录代码实例
2019/05/10 Python
简单了解django索引的相关知识
2019/07/17 Python
python搜索包的路径的实现方法
2019/07/19 Python
python实现对服务器脚本敏感信息的加密解密功能
2019/08/13 Python
Python下应用opencv 实现人脸检测功能
2019/10/24 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
详解使用canvas保存网页为pdf文件支持跨域
2018/11/23 HTML / CSS
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
2012/12/13 HTML / CSS
ToysRus日本官网:玩具反斗城
2018/09/08 全球购物
应用心理学个人求职信范文
2013/12/11 职场文书
四议两公开实施方案
2014/03/28 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
机关党员进社区活动总结
2014/07/05 职场文书
学习雷锋精神倡议书
2015/04/27 职场文书
党风廉政建设心得体会(2016最新版)
2016/01/22 职场文书
Python中的 No Module named ***问题及解决
2022/07/23 Python