您的位置:首页 > 职场人生

面试题01

2016-07-22 16:55 295 查看
<?php

# 不适用PHP内置函数,实现字符串的翻转

header('content-type:text/html;charset=utf-8');
function str_rev($str){
$len = strlen($str);
$tmp = '';
for($i=0;$i<($len/2);$i++){
$tmp = $str[$i];
$str[$i] = $str[$len-1-$i];
$str[$len-1-$i] = $tmp;
}
return $str;
}
$str ='abcdefg';
$new_str = str_rev($str);
//echo '翻转前:',$str,',翻转后:',$new_str;
#输出用户的ip地址,并且判断用户的ip地址是否在192.168.1.100---192.168.1.150
function compare_ip($ip){
$pt = strrpos($ip,'.');
$rip = substr($ip,$pt+1);
$lip = substr($ip,0,($pt));
$lip = str_replace('.','',$lip);
if($lip != 1921681){
echo '不在这个范围';

}else{
if($rip >=100 && $rip <=150){
echo '在这个范围';
}else{
echo '不在这个范围';
}
}

}
//$ip = $_SERVER['REMOTE_ADDR'];
$ip = '192.168.1.122';
// compare_ip($ip);
#请将二维数组按照name的长度进行重新排序,按照顺序将id赋值(从1开始);
$tarr = array(
array('id'=>0,'name'=>'123833'),
array('id'=>0,'name'=>'aaa'),
array('id'=>0,'name'=>'albabaababa'),
array('id'=>0,'name'=>'12356'),
array('id'=>0,'name'=>'123abcff')
);
function sort_arr($arr){
$tmp = '';
for($i=0;$i<count($arr);$i++){
$k = $i;
for($j=$i+1;$j<count($arr);$j++){
if(strlen($arr[$k]['name']) > strlen($arr[$j]['name'])){
$k = $j;
}
}
if($k != $i){
$tmp = $arr[$k];
$arr[$k] = $arr[$i];
$arr[$i] = $tmp;
}
}

for($i = 0 ;$i<count($arr);$i++){
$arr[$i]['id'] = $i+1;
}
return $arr;
}
$newarr = sort_arr($tarr);
/*foreach($newarr as $v){

echo "\r",$v['id'],'===>',$v['name'],'<br/>';
}*/
#有 1-5000 一组乱序数列 ,请使用   进行排序
function arr_sort(&$arr3){
$tmp = 0;
for($i=0;$i<count($arr3)-1;$i++){
$flag = false;
for($j=0;$j<count($arr3)-1-$i;$j++){
if($arr3[$j] > $arr3[$j+1]){
$tmp = $arr3[$j];
$arr3[$j] = $arr3[$j+1];
$arr3[$j+1] = $tmp;
$flag = true;
}
}
if(!$flag){
break;
}
}
}
$arr = array(20,11,22,34,1,2,3,4,5,6,7,8,9,10);
/*arr_sort($arr);
echo '<pre>';
print_r($arr);
echo '</pre>';*/
#百钱买白鸡问题:公鸡3元一只,母鸡5元一只,小鸡1元3只,一百元买一百只鸡,请使用伪代码写出求公鸡数,母鸡数,小鸡数
/* x -公鸡数  y- 母鸡数  z--小鸡数
3x+5y+z/3 = 100;
x+y+z = 100;
公鸡数:18母鸡数:4小鸡数:78
公鸡数:11母鸡数:8小鸡数:81
公鸡数:4母鸡数:12小鸡数:84
得出结论 从循环次数最少的情况开始
*/
for($m=1;$m<(100/5);$m++){//母鸡最多买20
for($g=1;$g<(100/3);$g++){//公鸡最多买33只
$x = 100 - $g - $m;//取得小鸡的数目
if((($g*3) + ($m*5) + ($x/3)) == 100){
//echo '公鸡数:',$g,'母鸡数:',$m,'小鸡数:',$x,'<br/>';

}
}
}
#斐波拉契数列
//11235迭代法
/* function fbj($num){
$fb1 = 1;
$fb2= 1;
$fb3= 0;
for($i=1;$i<=$num;$i++){
if($i <= 2){
$fb3 = 1;
}else{
$fb3 = $fb1+$fb2;
$fb1 = $fb2;
$fb2 = $fb3;
}
}
return $fb3;
}*/
//递归
function fbj($n){
$fb = 0;
if($n <=2){
$fb = 1;
}else{
$fb = fbj($n-1)+fbj($n-2);
}
return $fb;
}
echo(fbj(30));

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: