面试题总结(一)
很偶然的机会开始接触编程,很无奈的需要继续面试找工作,废话不多说了,上题。
面试的时候需要做几道笔试题,贴出来的目的是为了做个笔记。我只是根据我的理解和现有掌握的知识回答问题,也许不是最优解,也许也存在错误,希望高手不要笑话,对于一些错误也希望高手不吝指教,多谢。
问题1
有一辆火车以每小时15公里的速度离开北京直奔广州,同时另一辆火车每小时20公里的速度从广州开往北京,如果有一只鸟,以30公里每小时的速度和两辆火车同事启动,从北京出发,碰到另一辆车后就向相反的方向返回去费,就这样依次在两辆火车之间来回的飞,知道两辆火车相遇。请问,这只鸟工飞行了多长距离?
解:设北京和广州之间的距离为L,这只鸟飞行的距离是 L/(15+20)*30
问题2
编写一个交错合并列表 元素的函数。例如:给定两个列表为[a, B, C] 和 [1,2,3],函数返回[a,1,B,2,C,3]。
解:
1 <?php 2 $a = array('a', 'b', 'c'); 3 $b = array('1', '2', '3'); 4 $c = array(); 5 foreach ($a as $key => $value) { 6 array_push($c, $a[$key], $b[$key]); 7 } 8 var_dump($c); 9 ?>
问题3
编写一个能给定非负整数列表中的数字排列成最大数字的函数。例如,给定[50,2,1,9],最大数字为95201。
<?php $arr = array(50,2,1,9); $tmp; for($i=0;$i<count($arr)-1;$i++ ){ for($j=0;$j<count($arr)-1-$i;$j++){ if(strlen($arr[$j])==1){ $a = $arr[$j] . '0'; }else{ $a = $arr[$j]; } if(strlen($arr[$j+1])==1){ $b = $arr[$j+1] . '0'; }else{ $b = $arr[$j+1]; } if($a < $b){ $tmp = $arr[$j]; $arr[$j] = $arr[$j+1]; $arr[$j+1] = $tmp; } } } var_dump($arr); ?>
问题4
编写一个在1,2,...,9(顺序不能变)数字之间插入+或者-或什么都不插入,使得计算结构总是100的程序,并输出所有的可能性。例如:1+2+34-5+67-8+9=100
还没想好怎么做,希望会做的朋友们给点帮助。
你关注的人都在努力变的更好,你还在等什么呢。