面试题01
<?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)); ?>
有耕耘、有搬运、共学习