几个php算法练习题

1. 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
2.有5个人偷了一堆苹果,准备在第二天分赃。晚上,有一人遛出来,把所有菜果分成5份,但是多了一个,顺手把这个扔给树上的猴了,自己先拿1/5藏了。 没想到其他四人也都是这么想的,都如第一个人一样分成5份把多的那一个扔给了猴,偷走了1/5。 第二天,大家分赃,也是分成5份多一个扔给猴了。最后一人分了一份。问:共有多少苹果?
3.一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…, 如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n,输出最后那个大王的编号。 1) { if(($i+1)%$m == 0) { unset($monkeys[$i]); } else { array_push($monkeys,$monkeys[$i]); unset($monkeys[$i]); } $i++; } return current($monkeys); } $king = king($n,$m); print_r($king); ?>

4. 用符号*画一个菱形图案. "; } for($i=3; $i>=0; $i--) { for($x=0; $x<=3-$i; $x++) { echo '  '; } for($y=0; $y<$i; $y++) { echo '* '; } echo '
'; } ?>
5.使用五种以上方式获取一个文件的扩展名. ② function get_ext2($file_name){return substr($file_name, strrpos($file_name,‘.’)); }备注: strrpos //查找字符串在另一个字符串中最后一次出现的位置。
③ function get_ext3($file_name){return array_pop(explode(‘.’,$file_name)); }备注: array_pop //删除数组中的最后一个元素。
④ function get_ext4($file_name){$p = pathinfo($file_name); return $p['extension']; }备注: pathinfo //以数组的形式返回文件路径的信息。
⑤ function get_ext5($file_name){return strrev(substr(strrev($file_name), 0,strpos(strrev($file_name), ‘.’))); } 备注: strrev //反转字符串strpos//返回字符串在另一个字符串中第一次出现的位置。 ?>
6.实现斐波那契数列,格式为:1,1,2,3,5,8…即当前数字为前两个数字之和.
************************************************************************************************** $i; $j--){if($array[$j] < $array [$j-1]){$tmp = $array[$j]; $array[$j] = $array[ $j-1]; $array [$j-1] = $tmp; }}}return $array; }//快速排序(数组排序)function quick_sort($array ) {if (count($array) <= 1) return $array; $key = $array [0]; $left_arr= array(); $right_arr = array(); for ($i= 1; $i //------------------------// PHP内置字符串函数实现//------------------------//字符串长度function strlen ($str){if ($str == '' ) return 0; $count =0; while (1){if ( $str[$count] != NULL){$count++; continue; }else{break; }}return $count; }//截取子串function substr($str, $start,$length=NULL){if ($str== '' ||$start>strlen($str )) return; if (($length!=NULL)&& ( $start>0)&& ($length>strlen($str)-$start)) return; if (( $length!=NULL)&& ($start< 0)&&($length>strlen($str )+$start)) return; if ($length ==NULL) $length =(strlen($str ) - $start); if ($start < 0){for ($i=(strlen($str)+$start); $i<(strlen ($str)+$start+$length ); $i++) {$substr .= $str[$i]; }}if ($length>0){for ($i= $start; $i<($start+$length ); $i++) {$substr .= $str[$i]; }}if ( $length < 0){for ($i =$start; $i<(strlen( $str)+$length); $i++) {$substr .=$str[$i ]; }}return $substr; }//字符串翻转function strrev($str){if ($str == '') return 0 ; for ($i=(strlen($str)- 1); $i>=0; $i --){$rev_str .= $str[$i ]; }return $rev_str; }
//字符串比较function strcmp($s1,$s2){if (strlen($s1) < strlen($s2)) return -1 ; if (strlen($s1) > strlen( $s2))return 1; for ($i =0; $i //查找字符串functionstrstr($str, $substr){$m = strlen($str); $n = strlen($substr ); if ($m < $n) return false ; for ($i=0; $i <=($m-$n+1); $i++){$sub = substr( $str, $i, $n); if ( strcmp($sub, $substr) == 0)return $i; }return false ; }//字符串替换function str_replace($substr , $newsubstr, $str){$m = strlen($str); $n = strlen($substr ); $x = strlen($newsubstr ); if (strchr($str, $substr ) == false) returnfalse; for ( $i=0; $i<=($m- $n+1); $i++){$i =strchr($str,$substr); $str = str_delete ($str, $i,$n); $str = str_insert($str, $i, $newstr); }return $str ; }
//--------------------// 自实现字符串处理函数//--------------------//插入一段字符串function str_insert($str, $i , $substr){for($j=0 ; $j<$i; $j ++){$startstr .= $str[$j ]; }for ($j=$i; $j 128) return false; for( $i=0; $i31&& $c <107) $c += 20; if ($c>106&& $c <127) $c -= 75; $word = chr($c ); $s .= $word; }return $s; }//简单解码函数(与php_encode函数对应)function php_decode($str){if ( $str=='' &&strlen($str )>128) return false; for( $i=0; $i106&& $c<127 ) $c =$c-20; if ($c>31&& $c< 107) $c =$c+75 ; $word = chr( $c); $s .= $word ; }return $s; }//简单加密函数(与php_decrypt函数对应)function php_encrypt($str){$encrypt_key ='abcdefghijklmnopqrstuvwxyz1234567890'; $decrypt_key ='ngzqtcobmuhelkpdawxfyivrsj2468021359'; if ( strlen($str) == 0) return false; for ($i=0; $i

    推荐阅读