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自动获取字符串编码函数mb_detect_encoding
May 31 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
Jun 17 PHP
解析获取优酷视频真实下载地址的PHP源代码
Jun 26 PHP
php删除左端与右端空格的方法
Nov 29 PHP
PHP基于MySQL数据库实现对象持久层的方法
Jun 17 PHP
100行PHP代码实现socks5代理服务器
Apr 28 PHP
详解Yii2 定制表单输入字段的标签和样式
Jan 04 PHP
php str_getcsv把字符串解析为数组的实现方法
Apr 05 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
ThinkPHP开发--使用七牛云储存
Sep 14 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
May 11 PHP
通过实例解析PHP数据类型转换方法
Jul 11 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
纯真IP数据库的应用 IP地址转化成十进制
2009/06/14 PHP
php利用curl抓取新浪微博内容示例
2014/04/27 PHP
thinkphp在模型中自动完成session赋值示例代码
2014/09/09 PHP
javascript图片相似度算法实现 js实现直方图和向量算法
2014/01/14 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
js闭包实现按秒计数
2015/04/23 Javascript
用JavaScript实现页面重定向功能的教程
2015/06/04 Javascript
简单讲解jQuery中的子元素过滤选择器
2016/04/18 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
2016/05/23 Javascript
js实现城市级联菜单的2种方法
2017/06/23 Javascript
js学习总结之dom2级事件基础知识详解
2017/07/27 Javascript
Vue.js实现价格计算器功能
2020/03/30 Javascript
在react-router4中进行代码拆分的方法(基于webpack)
2018/03/08 Javascript
angular 组件通信的几种实现方式
2018/07/13 Javascript
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
2019/01/29 Javascript
Vue强制组件重新渲染的方法讨论
2020/02/03 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
Python使用百度API上传文件到百度网盘代码分享
2014/11/08 Python
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
pycharm 批量修改变量名称的方法
2019/08/01 Python
django修改models重建数据库的操作
2020/03/31 Python
Python 的 __str__ 和 __repr__ 方法对比
2020/09/02 Python
HTML5标签大全
2016/11/23 HTML / CSS
质检员岗位职责
2013/12/17 职场文书
社区学雷锋活动策划方案
2014/01/30 职场文书
财务会计自荐信范文
2014/02/21 职场文书
旅游局领导班子“四风”问题对照检查材料思想汇报
2014/09/29 职场文书
大学生联谊活动策划书(光棍节)
2014/10/10 职场文书
践行党的群众路线心得体会
2014/11/05 职场文书
学校青年志愿者活动总结
2015/05/06 职场文书
志愿者服务活动总结报告
2015/05/06 职场文书
2015选调生工作总结
2015/07/24 职场文书
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android