PHP各种算法
来源:互联网 发布:stm32仿真软件 编辑:程序博客网 时间:2024/05/20 11:24
PHP各种算法题
a.假设我们第一天在吃饭的时候,掉了一粒米,没有在意,第二天掉了两粒,第三天掉了6粒,此后的每天都会掉落从第一天开始数的天数*前一天掉落的米粒数,问:我们在第10天会掉落多少粒米?
/*阶乘实现*/ function jiecheng($mi) { $arr[1] = 1; //定义第一天掉了一粒米 for($i=2;$i<=$mi;$i++) { $arr[$i] = $i*$arr[$i-1]; } $sum = $arr[$mi-1]; return "我们在第10天的时候会掉".$sum."粒米"; } echo jiecheng(10); /*递归实现*/ function digui($num) { if($num<0) { return "shuru "; } else if($num==0||$num==1) { return 1; } else { return self::digui($num-1)*$num."粒米"; } } echo digui(10);
b.猴子选大王 : m只猴子围坐成一个圈,按顺时针方向从1到m编号。然后从1号猴子开始沿顺时针方向从1开始报数,报到n的猴子出局,再从刚出局猴子的下一个位置重新开始报数,如此重复,直至剩下一个猴子,它就是大王。
function arr($m){ for($i=1;$i<=$m;$i++){ $arr[$i] ='第'.$i.'只'; } return $arr; } function hz($m,$n){ $arr = arr($m); $j=1; while(count($arr)>1) { if($j%$n != 0) { array_push($arr,$arr[$j]); } unset($arr[$j]); $j++; } return $arr; } print_r(hz(5,4));
c.羊生羊 : 有一母羊,到5岁可生育,每年一头,第一年公羊、第二年母羊,依次循环。到15岁绝育,不再能生,20岁死亡,问n年后有多少头羊?
function sheep($year) { static $num = 1; //第一年 定义 一只羊 for($i=1;$i<=$year;$i++) { if($i>4&&$i<15) { $num++; if($i%2==1) { self::sheep($year-$i); } } if($i==20) { $num--; } } return $num; }
d.斐波那契数列—–递归 (一)
function recursion($num) { if($num<1) { return -1; } if($num==1||$num==2) { return 1; } return recursion($num-1)+recursion($num-2); } for($i=1;$i<=20;$i++) //循环显示 { $recursion .= recursion($i).","; } $recursion = substr($recursion,0,-1); echo $recursion;
d.斐波那契数列—–迭代(二)
function iteration($num) { if($num<1) { return -1; } $a[0] = 1; $a[1] = 1; for($i=2;$i<=$num;$i++) { $a[$i] = $a[$i-1]+$a[$i-2]; } return $a; } $iteration = implode(",",iteration(0)); //拼接成数组 echo $iteration;
d.斐波那契数列—–数组(三)
function arrays($num) { $arr = array(); for($i=1;$i<=$num;$i++) { if($i==1||$i==2) { $arr[$i] = 1; } else { $arr[$i] = $arr[$i-1]+$arr[$i-2]; } } return $arr; } print_r(arrays(10));
d.斐波那契数列~~~杨辉三角(四)
<table border="1"> <?php $num = 14; $arr = array(); for($i=1;$i<=$num;$i++) { echo "<tr>"; for($j=1;$j<=$i;$j++) { if($j==0||$i==$j) { $arr[$i][$j] = 1; } else { $arr[$i][$j] = $arr[$i-1][$j]+$arr[$i-1][$j-1]; } echo "<td>"; echo $arr[$i][$j]; echo "</td>"; } echo "</tr>"; } ?> </table>
e.无限极循环—–递归(一)
function digui($list,$id) //递归现实 { $arr = array(); foreach($list as $key=>$val) { if($id==$val['id']) { $arr[] = $val; $arr = array_merge($arr,digui($list,$val['pid'])); } } return $arr; } print_r(digui($list,26));
e.无限极循环—–迭代(二)
function diedai($list,$id) //迭代实现 { $arr = array(); while($id>0) { foreach($list as $key=>$val) { if($val['id']==$id) { $arr[] = $val; $id = $val['pid']; break; } } } return $arr; } print_r(diedai($list,26));
e.无限极循环~~~家族树(三)
function family($list,$pid=0,$level=1) { $arr = array(); foreach($list as $key=>$val) { if($val['pid']==$pid) { $val['level'] = $level; $val['html'] = str_repeat("**",$level); $arr[] = $val; $arr = array_merge($arr,family($list,$val['id'],$level+1)); } } return $arr; } $con = family($list,0,1);
0 0
- PHP各种算法
- php 各种经典算法
- php各种常用算法
- PHP实现各种排序算法
- PHP实现各种排序算法
- PHP实现各种排序算法
- PHP实现各种经典算法
- PHP实现各种经典算法
- PHP实现各种经典算法
- PHP实现各种经典算法
- PHP实现各种经典算法 ||
- php实现各种经典算法
- PHP实现各种经典算法
- 【数据结构--经典算法】PHP实现各种经典算法
- 用php实现的各种排序算法总结
- 用php实现的各种排序算法总结
- 各种算法
- 【算法】各种排序算法
- bzoj 1511: [POI2006]OKR-Periods of Words (kmp+乱搞)
- 使用java远程连接redis
- HDU 5974 A Simple Math Problem(GCD,LCM)
- C++标准库与STL简介
- YII框架中定义common控制器(非法登录)
- PHP各种算法
- ExtJs + Struts2 + JSON 程序总结
- iOS高性能图片架构与设计柯灵杰
- Android使用get方式上传数据
- lambda函数
- HDU 5961 bfs
- Session 和Cookie 详解
- linux服务器杀死端口命令
- PHP开发异常