PHP面试常出现的小算法总结

 代码如下 复制代码

 

<?php
  //打印一个三角形
  for($i=0;$i<=3;$i++)
  {
  for($j=0;$j<=3-$i;$j++){
  echo ‘&nbsp;’;
  }
  for($k=0;$k<=2*$i;$k++)
  {
  echo “*”;
  }
  echo ‘<br>’;
  }
  ?>
  <?php
  //杨辉三角
  for($i=0;$i<6;$i++)
  {
  //第一个和最后一个都为1
  $a[$i][0]=1;
  $a[$i][$i]=1;
  }
  for($i=2;$i<6;$i++){
  for($j=1;$j<$i;$j++)
  {
  $a[$i][$j]=$a[$i-1][$i-1]+$a[$i-1][$j];
  }
  }
  for($i=0;$i<6;$i++)
  {
  for($j=0;$j<=$i;$j++){
  echo $a[$i][$j].’&nbsp;’;
  }
  echo ‘<br/>’;
  }
  ?>
  <?php
  //合并多个数组
  function t(){
  $c=func_num_args()-1;//返回传递给函数的参数个数
  $a=func_get_args();//返回一个数组,包括函数的参数列表
  for($i=0;$i<=$c;$i++){
  if(is_array($a[$i])){
  for($j=0;$j<count($a[$i]);$j++){
  $r[]=$a[$i][$j];
  }
  }else{
  die(‘Not a array’);
  }
  }
  return $r;
  }
  print_r(t(range(1,4),range(1,4),range(1,4)));
  ?>
  <?php
  //求牛
  function cow($num,$y)
  {
  for($j=1;$j<$y;$j++)
  {
  if($j>=4 && $j<15)
  {
  $num++;
  cow($num,$y-$j);
  }
  if($j==20)
  $num–;
  }
  return $num;
  }
  echo cow(2,2);
  ?>
  <?php
  //顺序查找(数组里查找某个元素)
  function seq_sch($array,$n,$k)//在某个位置之前查找某元素(不包括指定位置)
  {
  $array[$n]=$k;
  for($i=0;$i<$n;$i++)
  {
  if($array[$i]==$k)
  break;
  }
  if($i<$n)
  return $i;
  else
  return -1;
  }
  $array=array(‘a’,'b’,'c’);
  echo seq_sch($array,2,’b');
  ?>
  <?php
  function show($i)
  {
  if($i==1)
  return 1;
  else
  return $i*show($i-1);
  }
  echo “<br>”;
  echo show(3);
  ?>
  <?php
  //裴波那挈数列
  function b($n)
  {
  if($n<2)
  return $n;
  else
  return b($n-1)+show($n-2);
  }
  echo b(2);
  ?>

时间: 2024-09-30 06:08:19

PHP面试常出现的小算法总结的相关文章

面试之如何回答关于算法设计的问题?

转自:http://blog.csdn.net/xdhehao/article/details/12522449                                                                                          程序员面试之道(<程序员面试笔试宝典>)之如何回答算法设计?                                程序员面试中,很多算法设计问题,都是历年来各家企业的"炒现饭"

[C++ 面试基础知识总结] 泛型算法

[C++ 面试基础知识总结] 泛型算法 参考书籍:<C++ Primer> 目录 C 面试基础知识总结 泛型算法 目录 基础泛型算法 只读算法 写容器算法 重排容器元素算法 定制操作 向算法传递函数 lambda表达式 参数绑定 特殊迭代器 插入迭代器 iostream迭代器 反向迭代器 5类迭代器 链表的特定容器算法 基础泛型算法 泛型算法本身运行于迭代器之上,不会执行容器的操作,可以改变容器中保存元素的值,也可以在容器内移动元素,但永远不会直接添加或删除元素.插入迭代器是一种特殊的迭代器,

赋值-请教一个php自由增减的小算法。

问题描述 请教一个php自由增减的小算法. $i在0~30 的时候,$j是自由增减的,$i==30的时候,$j的值也一定要自由增减到30,不要直接就赋值30,这个算法怎么写呢? 解决方案 问题问的不是很清楚,$j自由增减是如何自由增减呢? 算法大体是这样: 1.先判断$i的值,是否在0~30里面 2.如果$i在0~30里面,$j自由增加,如果$i ==30,判断$j是否为30,是,结束代码,不是,$j++或$j-- 解决方案二: 我是新手,什么是自由增减呢,是随机增加一个数还是什么?如果是这样可

java-一个简单的小算法求助

问题描述 一个简单的小算法求助 找出一个数组中既不是最大的数也不是最小的数,我的java代码如下(错误的): class NotMM{ public void NotMM(int arr[]){ int mid = arr[0]; for(int i=0;i<arr.length-2;i++){ if(arr[i+1]>arr[i]&&arr[i+1]<arr[i+2]){ mid = arr[i+1]; }else if(arr[i+1]<arr[i]&&

javascript-Javascript 一个小算法!

问题描述 Javascript 一个小算法! 给定一个Javascript二维数组,如何得到其笛卡尔积. var Test = new Array(); Test[0] = new Array(1, 2, 3); Test[1] = new Array(4, 5, 6); 二维数组长度不固定. 求大神解答! 解决方案 很简单,两层循环就可以了. 解决方案二: 要是多个数组,不止两个,就递归. 解决方案三: var Test = new Array(); var rst=[]; Test[0] =

算法 java c++ c-求高手解答,一个小算法

问题描述 求高手解答,一个小算法 以前有人提过这么一个问题,一个01矩阵,求里面最大的由1组成的矩形. 现在我的问题是,一个01矩阵,行和列都可以互换(3行5行对调,4列6列对调等),求里面可以有多少个矩形,最大矩形多大 0100000001 1110000001 0101010101 0010101010 0101000100 上面写的数是个例子,矩阵可以很大 解决方案 行列随意换,就是随意组合啊~~ 假入行列为 x,y : 有n个0,m个1 size = 0: if n>=4 size =

想问朋友面试中遇到的一个算法题:

问题描述 想问朋友面试中遇到的一个算法题: Write a program in Java to assess a given string whether it complies with following patterns. Return true if a given string complies with these patterns else false. N = N1 + N2 N>= N1 >= N2 where N is the Nth element in the str

C语言小算法,求大神支招

问题描述 C语言小算法,求大神支招 输入一串int类型的数组,要求出某一截数字串加起来最大,并打印数字串. 解决方案 http://www.cnblogs.com/zhousir1991/archive/2011/05/26/2058975.html 解决方案二: 用dp来做http://blog.csdn.net/someday7_toi/article/details/7852448

艾瑞郝欣诚:用小算法进行大数据分析

文章讲的是艾瑞郝欣诚:用小算法进行大数据分析,2014年4月10-12日,第五届中国数据库技术大会在北京五洲皇冠国际酒店隆重举行.本届大会的主题为"大数据技术探索与价值发现",参会规模达到1,800人.大会邀请近百位顶级技术专家和行业领袖分享数据库与大数据技术的最新动态,及其在行业领域里的应用部署和管理经验. 自2010年以来,国内领先的IT专业网站IT168联合旗下ITPUB.ChinaUnix两大技术社区,已经成功举办了四届中国数据库技术大会,每届大会与会规模超过千人,是目前国内最