一个上市公司的面试题太变态了谁能解出来?高手来看
2008-06-30 22:24
260 查看
一个上市公司的面试题太变态了谁能解出来?高手来看A:80B:158C:464D:608E:1326F:5164G:2724H:1452分别有以上8个产品冒号后面是价格要求用户输入一个价格比如1166然后程序要算出可能有的集中产品价格总和为1166的排列组合例如:1166=80+158+464+464排列为ABC(2)[如果有多种可能也要列举出来有可能2个A2个B1个C类似这种]那个高手能用穷举组合做做看这道难题目那?
<?php
/**
*过滤大于input的数组单元
*
*@parammix$val
*@returnboolean
*/
functionrealFilter($val){
return$val<$GLOBALS['input'];
}
/**
*获取组成的列表
*
*@paramint$input
*@returnarray
*/
functiongetList($input){
$price=$GLOBALS['price'];
//初始价格数组
$price=array_filter($price,'realFilter');
//低于最小的元素
if(!$price){
exit();
}
rsort($price);
//初始化
$stack=array(-1=>0);
$length=count($price);
$lists=array();
//循环放入堆栈
$i=0;
$break=false;
do{
//压栈
if(array_sum($stack)<$GLOBALS['input']){
array_push($stack,$price[$i]);
}else{
//记录组合
if(array_sum($stack)==$GLOBALS['input']){
//格式化这里
$lists[]=formatList($stack);
}
//出栈
do{
$last=array_pop($stack);
if($last==0){
$stack=array(-1=>0);
$break=true;
break;
}
$i=array_search($last,$price);
$i++;
}while($i>=$length);
if($break)break;
}
}while(true);
return$lists;
}
/**
*格式化$stack数组
*
*@paramarray$stack
*@returnarray
*/
functionformatList($stack){
foreach($stackas$key=>$value){
if($value==0){
unset($stack[$key]);
continue;
}
$stack[$key]=$GLOBALS['type'][array_search($value,$GLOBALS['price'])];
}
return$stack;
}
$price=array(80,158,464,608,1326,5164,2724,1452);
$type=array('A','B','C','D','E','F','G','H');
$input=2000;
var_dump(getList($input));
?>
相关文章推荐
- 下面是一个残缺的程序,不过大体功能是可以看出来的,我实在是改不了了,急啊!!望高手指点!!!
- 面试题:编程题,写一个Singleton出来。
- 搜狐面试题:有12个球,外形都一样,其中有一个质量和其他的不一样,给你一架天平,请问最少称几次可以把那个不同的球找出来。
- 下面是一个残缺的程序,不过大体功能是可以看出来的,我实在是改不了了,急啊!!望高手指点!!!
- oracle 数据库开发面试题,当时笔试的时候一个没做出来,现附原题及答案
- 一个变态C/C++面试题的变态解法(要码农背景) zz
- 一个变态C/C++面试题的变态解法
- 一个变态C/C++面试题的变态解法
- 一个中兴的面试题,输入两个数n和m,从数列1,2,3……n中随意取几个数,使其和等于m,要求将其中所有组合列出来编程求解(c语言递归函数分解法)
- ACCESS模糊查询出现的变态问题,不知道该问题的希望注意,知道内幕的高手还望给小弟一个解释 Thanks
- 一个赌博面试题的研究(未解答出来)
- 面试题没有做出来请高手帮帮忙……
- 一个变态C/C++面试题的变态解法
- 下面是一个残缺的程序,不过大体功能是可以看出来的,我实在是改不了了,急啊!!望高手指点!!!
- 一个java面试题:一个农夫养了一头牛,三年后,这头牛每年会生出一头牛,生出来的牛三年后又可以每年生出一头牛,不考虑牛的性别和生死,问农夫10年后有多少头牛?
- 点击一个Button,来看Duwamish7的总体层次
- 一个项目怎么开发出来
- 关于类构造的一个面试题
- 一个fork的面试题