题目大意
输入三个整数$a$,$b$,$c$,如果 $\sqrt a + \sqrt b < \sqrt c$ 成立,输出Yes
,否则输出No
。
样例
输入 #1
|
|
输出 #1
|
|
$\sqrt 2 + \sqrt 3 < \sqrt 9$ 不成立。
输入 #2
|
|
输出 #2
|
|
$\sqrt 2 + \sqrt 3 < \sqrt 10$ 成立。
分析
错误思路
首先,由于系统sqrt
函数的浮点数精度误差,下面这个代码明显会WA
:
|
|
所以,这个题一定需要特殊思路!!!
正确思路
下面是正确方法的推导过程:
$\sqrt a + \sqrt b < \sqrt c$
$(\sqrt a + \sqrt b)^2 < (\sqrt c)^2$
$a + b + 2\sqrt ab < c$
$2\sqrt ab < c - a - b$
$(2\sqrt ab)^2 < (c - a - b)^2$
$4ab < (c - a - b)^2$
注意:还有一种情况,就是$c - a - b < 0$或$c < a + b$,答案应该是No
。这种情况不考虑到会WA
,因为$(c - a - b)^2$会“直接忽略负数”!
代码
|
|