在我们phper去面试时都会碰到一些小算法题,下面我来总结一下可能碰到的一些PHP面试常出现的小算法总结,代码如下:
<?php //打印一个三角形 for ( $i =0; $i <=3; $i ++) { for ( $j =0; $j <=3- $i ; $j ++){ echo ‘ ’; } 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 ].’ ’; } 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); ?>声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did29611