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生成局部唯一识别码LUID的代码
Oct 06 PHP
php 解压rar文件及zip文件的方法
May 05 PHP
Win7 64位系统下PHP连接Oracle数据库
Aug 20 PHP
php微信支付之APP支付方法
Mar 04 PHP
详解PHP数组赋值方法
Nov 07 PHP
JavaScript实现删除电脑的关机键
Jul 26 PHP
php利用header函数下载各种文件
Aug 24 PHP
Yii框架中jquery表单验证插件用法示例
Oct 18 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
Jan 17 PHP
php实现文件与16进制相互转换的方法示例
Feb 16 PHP
关于PHP中协程和阻塞的一些理解与思考
Aug 11 PHP
php图片裁剪函数
Oct 31 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
Win2000+Apache+MySql+PHP4+PERL安装使用小结
2006/10/09 PHP
深入理解curl类,可用于模拟get,post和curl下载
2013/06/08 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
jQuery 瀑布流 浮动布局(一)(延迟AJAX加载图片)
2012/05/23 Javascript
js的Boolean对象初始值示例
2014/03/04 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
Node.js中使用mongoskin操作mongoDB实例
2014/09/28 Javascript
详解javascript事件冒泡
2016/01/09 Javascript
javascript replace()第二个参数为函数时的参数用法
2016/12/26 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
巧用canvas
2017/01/21 Javascript
js实现彩色条纹滚动条效果
2017/03/15 Javascript
完美解决浏览器跨域的几种方法(汇总)
2017/05/08 Javascript
js轮播图无缝滚动效果
2017/06/17 Javascript
微信小程序显示下拉列表功能【附源码下载】
2017/12/12 Javascript
Vue.js实现的购物车功能详解
2019/01/27 Javascript
jQuery表单选择器用法详解
2019/08/22 jQuery
layui table 获取分页 limit的方法
2019/09/20 Javascript
vue接口请求加密实例
2020/08/11 Javascript
微信小程序实现可长按移动控件
2020/11/01 Javascript
python Django框架实现自定义表单提交
2016/03/25 Python
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
2016/05/17 Python
详解python上传文件和字符到PHP服务器
2017/11/24 Python
PyQt5主窗口动态加载Widget实例代码
2018/02/07 Python
Django 内置权限扩展案例详解
2019/03/04 Python
python中有关时间日期格式转换问题
2019/12/25 Python
python 操作mysql数据中fetchone()和fetchall()方式
2020/05/15 Python
python中的unittest框架实例详解
2021/02/05 Python
html5 button autofocus 属性介绍及应用
2013/01/04 HTML / CSS
英国领先的体验日提供商:Buyagift
2019/04/19 全球购物
Paper Cape官网:美国婴儿和儿童服装品牌
2019/11/02 全球购物
印度在线购买电子产品网站:Croma
2020/01/02 全球购物
现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
2012/11/09 面试题
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS
windows安装 redis 6.2.6最新步骤详解
2022/04/26 Redis