是求一个MEDIAN(x ,y , z) ,三个整数的中值,看到网上不多,有一个用两数差之间的乘积来判断(估计是利用两数差的乘积和0比),看上去也有点复杂。这里就提供一个相对比较直观的算法。
1、嵌套的条件判断函数求最大值和最小值
注意到:
x > y ? x : y
这个可以得到x 和 y 中的较大值。所以稍加考虑,就可以得出三个数的最大值解法
( x> y ? x : y ) > z ? ( ( x > y ) ? x : y ) : z
然后反过来就可以得到三个数的最小值,就是把大于号反过来。
( x < y ? x : y ) < z ? ( ( x < y ) ? x : y ) : z
2 、如何求得中间值
一开始比较难以想到 ,后来发现三个值求得最大、最小,那么剩下的就是中间值,所以如果是三书之和前去前两个数,就是中间值,所以有:
((x) + (y) + (z) )- (((x)>(y)?(x):(y))>(z)?((x)>(y)?(x):(y)):(z)) - ( (((x) < (y))?(x):(y))< (z)?(((x)<(y))?(x):(y)):(z))