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 相关文章推荐
如何给phpadmin一个保护
Oct 09 PHP
php.ini中文版
Oct 09 PHP
php文件上传表单摘自drupal的代码
Feb 15 PHP
spl_autoload_register与autoload的区别详解
Jun 03 PHP
php生成PDF格式文件并且加密
Jun 22 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
Jan 07 PHP
深入浅析php中sprintf与printf函数的用法及区别
Jan 08 PHP
php 微信公众平台开发模式实现多客服的实例代码
Nov 07 PHP
PHP Mysqli 常用代码集合
Nov 12 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
Feb 06 PHP
在PHP中输出JS语句以及乱码问题的解决方案
Feb 13 PHP
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
Apr 01 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
windows xp下安装pear
2006/12/02 PHP
PHP源码之 ext/mysql扩展部分
2009/07/17 PHP
php实现自动获取生成文章主题关键词功能的深入分析
2013/06/03 PHP
php简单实现无限分类树形列表的方法
2015/03/27 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
PHP表单验证内容是否为空的实现代码
2016/11/14 PHP
laravel实现按月或天或小时统计mysql数据的方法
2019/10/09 PHP
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
2008/10/29 Javascript
探讨js中的双感叹号判断
2013/11/11 Javascript
JavaScript实现给定时间相加天数的方法
2016/01/25 Javascript
深入理解JavaScript中为什么string可以拥有方法
2016/05/24 Javascript
微信小程序 框架详解及实例应用
2016/09/26 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
JS实现的Unicode编码转换操作示例
2017/04/28 Javascript
微信小程序自定义模态对话框实例详解
2017/08/16 Javascript
ES6中数组array新增方法实例总结
2017/11/07 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
2018/05/25 Javascript
利用原生的JavaScript实现简单拼图游戏
2018/11/18 Javascript
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
2020/08/25 Javascript
python在Windows8下获取本机ip地址的方法
2015/03/14 Python
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
新手常见6种的python报错及解决方法
2018/03/09 Python
python中验证码连通域分割的方法详解
2018/06/04 Python
Python+OpenCv制作证件图片生成器的操作方法
2019/08/21 Python
Python二次规划和线性规划使用实例
2019/12/09 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
Matplotlib 折线图plot()所有用法详解
2020/07/28 Python
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
策划助理岗位职责
2013/11/18 职场文书
行政办公员自我评价分享
2013/12/14 职场文书
社团文化节策划书
2014/02/01 职场文书
2015年社区流动人口工作总结
2015/05/12 职场文书
中秋节感想
2015/08/10 职场文书
早恋主题班会
2015/08/14 职场文书
高一数学教学反思
2016/02/18 职场文书