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作为Shell脚本语言使用
Oct 09 PHP
php smarty模版引擎中的缓存应用
Dec 02 PHP
PHP中获取文件扩展名的N种方法小结
Feb 27 PHP
用php来改写404错误页让你的页面更友好
Jan 24 PHP
php将12小时制转换成24小时制的方法
Mar 31 PHP
yii2.0实现验证用户名与邮箱功能
Dec 22 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
Mar 17 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
May 20 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
Nov 22 PHP
Yii2使用$this-&gt;context获取当前的Module、Controller(控制器)、Action等
Mar 29 PHP
PHP使用PDO调用mssql存储过程的方法示例
Oct 07 PHP
php查看一个变量的占用内存的实例代码
Mar 29 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
jq的get传参数在utf-8中乱码问题的解决php版
2008/07/23 PHP
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
PHP读取txt文件的内容并赋值给数组的代码
2011/11/03 PHP
那些年一起学习的PHP(二)
2012/03/21 PHP
PHP中获取时间的下一周下个月的方法
2014/03/18 PHP
PHP的switch判断语句的“高级”用法详解
2014/10/01 PHP
php实现ip白名单黑名单功能
2015/03/12 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
laravel-admin的多级联动方法
2019/09/30 PHP
了解一点js的Eval函数
2012/07/26 Javascript
jquery动画1.加载指示器
2012/08/24 Javascript
node.js中的fs.lstatSync方法使用说明
2014/12/16 Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
2017/02/14 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
2017/03/27 Javascript
jquery Form轻松实现文件上传
2017/05/24 jQuery
AngularJS的ng-click传参的方法
2017/06/19 Javascript
微信小程序wx:for和wx:for-item的用法详解
2018/04/01 Javascript
Vue如何循环提取对象数组中的值
2020/11/18 Vue.js
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
2020/12/30 Vue.js
[00:23]DOTA2群星共贺开放测试 25日无码时代来袭
2013/09/23 DOTA
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
Python实战小程序利用matplotlib模块画图代码分享
2017/12/09 Python
python判断数字是否是超级素数幂
2018/09/27 Python
Python 窗体(tkinter)按钮 位置实例
2019/06/13 Python
python实现在cmd窗口显示彩色文字
2019/06/24 Python
在keras中对单一输入图像进行预测并返回预测结果操作
2020/07/09 Python
用python写一个带有gui界面的密码生成器
2020/11/06 Python
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
美国木工工具和用品商店:Woodcraft
2019/10/30 全球购物
泰国最新活动和优惠:Megatix
2020/05/07 全球购物
产品工艺师的岗位职责
2013/11/15 职场文书
英语专业毕业生自荐信范文
2013/12/31 职场文书
拾金不昧表扬信范文
2014/01/11 职场文书
电台编导求职信
2014/05/06 职场文书
禁毒宣传标语
2014/06/19 职场文书