不能使用boolean,if else等判断语句,要求求出两个数中的大数,另,不能用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;
}
int getMaxNum(int a,int b){
double x = (double)a;
double y = (double)b;
return (int)(x/2+y/2+Math.abs(x/2-y/2));
}