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支持断点续传的源码
May 16 PHP
php中利用post传递字符串重定向的实现代码
Apr 21 PHP
php生成静态文件的多种方法分享
Jul 17 PHP
php笔记之:初探PHPcms模块开发介绍
Apr 26 PHP
php中的mongodb select常用操作代码示例
Sep 06 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
Jun 10 PHP
PHP实现递归复制整个文件夹的类实例
Aug 03 PHP
YII使用url组件美化管理的方法
Dec 28 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
Feb 15 PHP
PHP 返回13位时间戳的实现代码
May 13 PHP
PHP获取真实客户端的真实IP
Mar 07 PHP
PHP echo()函数讲解
Feb 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中实现进程间通讯
2006/10/09 PHP
Cakephp 执行主要流程
2010/03/24 PHP
Yii实现自动加载类地图的方法
2015/04/01 PHP
PHP可变变量学习小结
2015/11/29 PHP
PHP简单实现循环链表功能示例
2017/11/10 PHP
textContent在Firefox下与innerText等效的属性
2007/05/12 Javascript
Javascript remove 自定义数组删除方法
2009/10/20 Javascript
js 针对html DOM元素操作等经验累积
2014/03/11 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
javascript生成随机数方法汇总
2015/11/12 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
2016/04/17 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
jQuery实现图片滑动效果
2017/03/08 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
薪资那么高的Web前端必看书单
2017/10/13 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
2017/12/14 Javascript
JS实现的RC4加密算法示例
2018/08/16 Javascript
Vue源码解读之Component组件注册的实现
2018/08/24 Javascript
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
Nodejs对postgresql基本操作的封装方法
2019/02/20 NodeJs
JS实现继承的几种常用方式示例
2019/06/22 Javascript
vue实现购物车的监听
2020/04/20 Javascript
js实现微信聊天界面
2020/08/09 Javascript
python 提取文件的小程序
2009/07/29 Python
Python编程中的反模式实例分析
2014/12/08 Python
让Django支持Sql Server作后端数据库的方法
2018/05/29 Python
Python实现快速傅里叶变换的方法(FFT)
2018/07/21 Python
Pandas 解决dataframe的一列进行向下顺移问题
2019/12/27 Python
Python BeautifulReport可视化报告代码实例
2020/04/13 Python
pytorch 计算ConvTranspose1d输出特征大小方式
2020/06/23 Python
Html5之自定义属性(data-,dataset)
2019/11/19 HTML / CSS
普通党员个人剖析材料
2014/10/08 职场文书
通知的写法
2015/04/23 职场文书
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers