一道面试题及其解题思路

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

问题描述:

写出一个数学表达式,只能使用+,-,*,/这几个操作符,使之能够表示以下

这个函数:F(L,M) = L ( 当 M > L 时); F(L,M) = M (当M < L时)

解题思路:

表达式可能表示形式应该是:A + B,其中当L > M时,其中一部分为0,当L < M时,

另外一部分就应该为0。

由于所能用到的操作符只能是:+,-,*,/,%,所以只能从这几个操作符的性质入

手来解决这个问题。

显然,根据C++或c语言,/有其特殊的地方,L/M = 0, L < M; L/M > 0, L > M;这样

根据这个性质可以得到解题思路了,L/M * M + M/L * L这个式子就比较接近上面的要求

了,再做些变化,就能得到最后的结果。最后将M/L去处就得到结果。

答案:

L + 1 M + 1

------- * (M + 1) + ------- * (L + 1)

M + 1 L + 1

----------------------------------------------- - 1

L + 1 M + 1

------- + --------

M + 1 L + 1

注:

需要考虑下面两种特殊情况,所以最后结果如上所示。

1) L和M中有一个为0时

2) L和M都为0时

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航