前段日子找工作期间,经常上网找面试题目做做。
忘了是哪家公司的题目,其中有这么一道题
说,不能使用boolean,if else等判断语句,要求求出两个数中的大数,
【add at 2009-12-10 15:33:52】另,不能用Math类
一开始想来想去没有思路,后来想想,程序中需要判断的不就是if-else等逻辑判断以及异常嘛。。。
既然不能用判断,那就只能用异常了。
所以思路是,构造一段代码,让他遇到两个数时,可以构造出异常。什么代码可以这么神奇呢?
呵呵,很简单,用数组的越界可以解决问题!
public static int getMaxValueWidthoutBoolean(int a,int b){
int[] array=new int[a];
try{
//只要b比a大,数组越界,肯定会导致异常,否则b比a小
//所以在catch模块中返回b,非异常返回a即可
array[b]=0;
}catch(Exception ex){
return b;
}
return a;
}
呵呵,没去查过别人的解法是咋样的,我觉得应该还有其他更好的解法,各位想一想,知道的告知在下,谢谢了!