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 相关文章推荐
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
Aug 26 PHP
PHP连接access数据库
Mar 27 PHP
PHP 得到根目录的 __FILE__ 常量
Jul 23 PHP
php在字符串中查找另一个字符串
Nov 19 PHP
PHP中如何判断AJAX提交的数据
Feb 05 PHP
解析php利用正则表达式解决采集内容排版的问题
Jun 20 PHP
php中使用url传递数组的方法
Feb 11 PHP
php将一维数组转换为每3个连续值组成的二维数组
May 06 PHP
php中array_column函数简单实现方法
Jul 11 PHP
php微信公众号开发模式详解
Nov 28 PHP
php 开发中加密的几种方法总结
Mar 22 PHP
Django中的cookie与session操作实例代码
Aug 17 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对象类型判断
2008/08/27 PHP
PHP使用Http Post请求发送Json对象数据代码解析
2020/07/16 PHP
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
firefox火狐浏览器与与ie兼容的2个问题总结
2010/07/20 Javascript
HTML颜色选择器实现代码
2010/11/23 Javascript
jQuery实现类似滑动门切换效果的层切换
2013/09/23 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
Node.js操作mysql数据库增删改查
2016/03/30 Javascript
深入理解JS DOM事件机制
2016/08/06 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
2017/02/05 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
2017/02/23 Javascript
mpvue 单文件页面配置详解
2018/12/02 Javascript
Vue.js的模板语法详解
2020/02/16 Javascript
Javascript原生ajax请求代码实例
2020/02/20 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
小程序中手机号识别的示例
2020/12/14 Javascript
[04:42]2015国际邀请赛CDEC战队晋级之路
2015/08/13 DOTA
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
pycharm 使用心得(三)Hello world!
2014/06/05 Python
遗传算法python版
2018/03/19 Python
Python线程同步的实现代码
2018/10/03 Python
在Python中过滤Windows文件名中的非法字符方法
2019/06/10 Python
django数据库自动重连的方法实例
2019/07/21 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
2020/02/25 Python
详解Python中的路径问题
2020/09/02 Python
2014政务公开实施方案
2014/02/19 职场文书
银行竞聘演讲稿
2014/05/16 职场文书
宣传活动总结范文
2014/07/01 职场文书
民族团结演讲稿范文
2014/08/27 职场文书
师范生小学见习总结
2015/06/23 职场文书
2016年重阳节慰问信
2015/12/01 职场文书
祝福语集锦:给满月宝宝的祝福语
2019/11/20 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android
win10怎么设置右下角图标不折叠?Win10设置右下角图标不折叠的方法
2022/07/15 数码科技