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一些服务器端特性的配置加强php的安全
Oct 09 PHP
php一些公用函数的集合
Mar 27 PHP
PHP中改变图片的尺寸大小的代码
Jul 17 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
Nov 02 PHP
php使用异或实现的加密解密实例
Sep 04 PHP
ioncube_loader_win_5.2.dll的错误解决方法
Jan 04 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
Dec 16 PHP
浅谈PHP的反射API
Feb 26 PHP
php查找字符串中第一个非0的位置截取
Feb 27 PHP
ThinkPHP中create()方法自动验证实例
Apr 26 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
May 26 PHP
php微信公众号开发之关键词回复
Oct 20 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
在字符串指定位置插入一段字符串的php代码
2010/02/16 PHP
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
2010/12/29 PHP
php 冒泡排序 交换排序法
2011/05/10 PHP
关于二级目录拖拽排序的实现(源码示例下载)
2013/04/26 PHP
php将html转成wml的WAP标记语言实例
2015/07/08 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
2019/04/05 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
2019/10/03 PHP
Laravel Reponse响应客户端示例详解
2020/09/03 PHP
9个JavaScript评级/投票插件
2010/01/18 Javascript
JavaScript 高级篇之闭包、模拟类,继承(五)
2012/04/07 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
2014/05/04 Javascript
NodeJS Web应用监听sock文件实例
2015/02/18 NodeJs
jQuery实现监控页面所有ajax请求的方法
2015/12/10 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
2016/10/28 Javascript
原生JS改变透明度实现轮播效果
2017/03/24 Javascript
微信小程序 获取二维码实例详解
2017/06/23 Javascript
JS字符串常用操作方法实例小结
2019/06/24 Javascript
vue自定义表单生成器form-create使用详解
2019/07/19 Javascript
微信小程序自定义波浪组件使用方法详解
2019/09/21 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
Python 实现文件的全备份和差异备份详解
2016/12/27 Python
Python实现字符串与数组相互转换功能示例
2017/09/22 Python
python字典嵌套字典的情况下找到某个key的value详解
2019/07/10 Python
Python协程操作之gevent(yield阻塞,greenlet),协程实现多任务(有规律的交替协作执行)用法详解
2019/10/14 Python
基于python实现判断字符串是否数字算法
2020/07/10 Python
python利用文件时间批量重命名照片和视频
2021/02/09 Python
HTML5实现QQ聊天气泡效果
2017/06/26 HTML / CSS
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
财务经理的岗位职责
2013/12/17 职场文书
最新的互联网创业计划书
2014/01/10 职场文书
大学生社会实践评语
2014/04/25 职场文书
毕业纪念册寄语大全
2015/02/26 职场文书
留学推荐信中文范文
2015/03/26 职场文书
在职证明范本
2015/06/15 职场文书
python字符串的多行输出的实例详解
2021/06/08 Python
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
2022/05/25 SQL Server