几个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…即当前数字为前两个数字之和.
************************************************************************************************** //--------------------// 基本数据结构算法//--------------------//二分查找(数组里查找某个元素)function bin_sch($array,$low, $high, $k){if ( $low<= $high){$mid =intval(($low+$high)/2);
if ($array[$mid] ==$k){return$mid;
}elseif ( $k < $array[$mid]){return bin_sch($array, $low,$mid-1,$k);
}else{return bin_sch($array, $mid+ 1, $high, $k);
}}return -1;
}//顺序查找(数组里查找某个元素)functionseq_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;
}}//线性表的删除(数组中实现)function delete_array_element($array , $i){$len =count($array);
for ($j= $i;
$j<$len;
$j ++){$array[$j] = $array [$j+1];
}array_pop ($array);
return $array ;
}//冒泡排序(数组排序)function bubble_sort( $array){$count = count( $array);
if ($count <= 0 ) return false;
for($i=0 ;
$i<$count;
$i ++){for($j=$count-1 ;
$j>$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
//字符串比较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
推荐阅读
- 画解算法(1.|画解算法:1. 两数之和)
- Guava|Guava RateLimiter与限流算法
- thinkphp|thinkphp 3.2 如何调用第三方类库
- 唱歌教学(导致嗓音损坏的几个常见的错误唱歌方法!)
- CGI,FastCGI,PHP-CGI与PHP-FPM
- 一个选择排序算法
- 工具|后天就是七夕节,你准备好了吗(送上几个七夕代码,展示你技能的时候到了!)
- SG平滑轨迹算法的原理和实现
- 《算法》-图[有向图]
- 写好铁线篆的几个关键窍门