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下编码转换函数mb_convert_encoding与iconv的使用说明
Dec 16 PHP
php中根据某年第几天计算出日期年月日的代码
Feb 24 PHP
解析php根据ip查询所在地区(非常有用,赶集网就用到)
Jul 01 PHP
php下pdo的mysql事务处理用法实例
Dec 27 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
Feb 12 PHP
Php-Redis安装测试笔记
Mar 05 PHP
php常用表单验证类用法实例
Jun 18 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
May 04 PHP
PHP读取CSV大文件导入数据库的实例
Jul 24 PHP
在Laravel5中正确设置文件权限的方法
May 22 PHP
PHP生成zip压缩包的常用方法示例
Aug 22 PHP
Laravel 读取 config 下的数据方法
Oct 13 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/11/16 PHP
mysql时区问题
2008/03/26 PHP
php的memcached客户端memcached
2011/06/14 PHP
PHP运行模式的深入理解
2013/06/03 PHP
PHP+JavaScript实现无刷新上传图片
2017/02/21 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
jQuery 加上最后自己的验证
2009/11/04 Javascript
WEB高性能开发之疯狂的HTML压缩
2010/06/19 Javascript
Wordpress ThickBox 点击图片显示下一张图的修改方法
2010/12/11 Javascript
javascript实现分栏显示小技巧附图
2014/10/13 Javascript
详解JavaScript中的4种类型识别方法
2015/09/14 Javascript
jquery实现的动态回到顶部特效代码
2015/10/28 Javascript
EasyUi combotree 实现动态加载树节点
2016/04/01 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
jQuery获取this当前对象子元素对象的方法
2016/11/29 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
nodejs实现聊天机器人功能
2019/09/19 NodeJs
vue 自定义组件的写法与用法详解
2020/03/04 Javascript
Vue按时间段查询数据组件使用详解
2020/08/21 Javascript
python的unittest测试类代码实例
2017/12/07 Python
Python 对输入的数字进行排序的方法
2018/06/23 Python
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
完美解决ARIMA模型中plot_acf画不出图的问题
2020/06/04 Python
在keras中对单一输入图像进行预测并返回预测结果操作
2020/07/09 Python
Canvas 像素处理之改变透明度的实现代码
2019/01/08 HTML / CSS
什么情况下你必须要把一个类定义为abstract的
2013/01/06 面试题
求职自荐信
2013/12/14 职场文书
幼儿园老师寄语
2014/04/03 职场文书
学生未请假就回家检讨书
2014/09/22 职场文书
2014年机关作风建设工作总结
2014/10/23 职场文书
世界文化遗产导游词
2015/02/13 职场文书
我的法兰西岁月观后感
2015/06/09 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书
创业计划书之餐饮馄饨店
2019/07/18 职场文书
小程序教您怎样你零成本推广获取数万用户的方法
2019/07/30 职场文书
MySQL时区造成时差问题
2022/04/13 MySQL