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新手上路(十二)
Oct 09 PHP
php empty() 检查一个变量是否为空
Nov 10 PHP
ajax完美实现两个网页 分页功能的实例代码
Apr 16 PHP
php的declare控制符和ticks教程(附示例)
Mar 21 PHP
PHP函数实现分页含文本分页和数字分页
Oct 23 PHP
php提交表单发送邮件的方法
Mar 20 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
Jul 21 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
Apr 18 PHP
PHP简单获取随机数的常用方法小结
Jun 07 PHP
php数组和链表的区别总结
Sep 20 PHP
Laravel等框架模型关联的可用性浅析
Dec 15 PHP
php字符串函数 str类常见用法示例
May 15 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多用户读写文件冲突的解决办法
2013/11/06 PHP
Firebug 字幕文件JSON地址获取代码
2009/10/28 Javascript
jquery 跨域访问问题解决方法(笔记)
2011/06/08 Javascript
JavaScript中的null和undefined解析
2012/04/14 Javascript
谈谈关于JavaScript 中的 MVC 模式
2013/04/11 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
2014/08/15 Javascript
字段太多jquey快速清空表单内容方法
2014/08/21 Javascript
举例详解AngularJS中ngShow和ngHide的使用方法
2015/06/19 Javascript
AngularJS 模块化详解及实例代码
2016/09/14 Javascript
对javascript继承的理解
2016/10/11 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
2017/01/13 Javascript
javascript深拷贝和浅拷贝详解
2017/02/14 Javascript
详解如何实现一个简单的Node.js脚手架
2017/12/04 Javascript
js获取html页面代码中图片地址的实现代码
2018/03/05 Javascript
简述JS浏览器的三种弹窗
2018/07/15 Javascript
vue+mock.js实现前后端分离
2019/07/24 Javascript
[01:04:14]VP vs TNC 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
跟老齐学Python之类的细节
2014/10/13 Python
python将字符串转换成数组的方法
2015/04/29 Python
Django学习笔记之Class-Based-View
2017/02/15 Python
Python OpenCV实现图片上输出中文
2018/01/22 Python
python将三维数组展开成二维数组的实现
2019/11/30 Python
python 实现turtle画图并导出图片格式的文件
2019/12/07 Python
python 3.8.3 安装配置图文教程
2020/05/21 Python
python新手学习使用库
2020/06/11 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
米兰必去买手店排行榜首位:Antonioli
2016/09/11 全球购物
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
观看信仰心得体会
2014/09/04 职场文书
酒店员工管理制度
2015/08/05 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书
七年级之家长会发言稿范文
2019/09/04 职场文书
作文之亲情600字
2019/09/23 职场文书
教你用Python爬取英雄联盟皮肤原画
2021/06/13 Python
关于Python中进度条的六个实用技巧分享
2022/04/05 Python