Sql 确定三角形的类型
我正在尝试下面的黑客等级三角形类型,根据3条边,必须确定三角形是等边三角形、等腰三角形、斯凯伦三角形还是非三角形 我不确定为什么下面的代码没有通过测试用例。不幸的是,我无法下载测试用例来了解它为什么不工作Sql 确定三角形的类型,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我正在尝试下面的黑客等级三角形类型,根据3条边,必须确定三角形是等边三角形、等腰三角形、斯凯伦三角形还是非三角形 我不确定为什么下面的代码没有通过测试用例。不幸的是,我无法下载测试用例来了解它为什么不工作 SELECT CASE WHEN A = B AND B = C AND A = C THEN 'Equilateral' WHEN (A = B AND B != C AND A != C) OR (B = C AND A != B AND A != C) O
SELECT CASE WHEN A = B AND B = C AND A = C THEN 'Equilateral'
WHEN (A = B AND B != C AND A != C) OR (B = C AND A != B AND A != C) OR (A = C AND A != B AND B != C) THEN 'Isosceles'
WHEN ((A + B) < C) OR ((B + C) < A) OR ((C + A) < B) THEN 'Not a triangle'
ELSE 'Scalene' END
FROM Triangles
选择A=B、B=C和A=C时的情况,然后选择“等边”
当(A=B和B!=C和A!=C)或(B=C和A!=B和A!=C)或(A=C和A!=B和B!=C)时,则“等腰”
当((A+B)
试试这个:
SELECT CASE WHEN A + B > C AND A+C>B AND B+C>A THEN
CASE WHEN A = B AND B = C THEN 'Equilateral'
WHEN A = B OR B = C OR A = C THEN 'Isosceles'
WHEN A != B OR B != C OR A != C THEN 'Scalene'
END
ELSE 'Not A Triangle' END FROM TRIANGLES;
“不等边三角形”的条件在原始查询中不包括以下条件:第1面+第2面尝试以下操作:
SELECT CASE WHEN A + B > C AND A+C>B AND B+C>A THEN
CASE WHEN A = B AND B = C THEN 'Equilateral'
WHEN A = B OR B = C OR A = C THEN 'Isosceles'
WHEN A != B OR B != C OR A != C THEN 'Scalene'
END
ELSE 'Not A Triangle' END FROM TRIANGLES;
“不等边三角形”的条件在原始查询中不包括以下条件:第1面+第2面尝试以下操作:
SELECT
CASE
WHEN A + B > C AND A + C > B AND B + C > A THEN
CASE
WHEN A = B AND B = C THEN 'Equilateral'
WHEN A = B OR B = C OR A = C THEN 'Isosceles'
ELSE 'Scalene' END
ELSE 'Not A Triangle' END
FROM TRIANGLES
当三角形为三角形时,仅测试三角形的类型。尝试以下方法:
SELECT
CASE
WHEN A + B > C AND A + C > B AND B + C > A THEN
CASE
WHEN A = B AND B = C THEN 'Equilateral'
WHEN A = B OR B = C OR A = C THEN 'Isosceles'
ELSE 'Scalene' END
ELSE 'Not A Triangle' END
FROM TRIANGLES
当三角形为三角形时,仅测试三角形的类型。我将其更改为“非三角形”,但它仍然给出错误。
((a+B)
应为((a+B)进行更改后,测试用例仍会出错您的问题是,您的代码将返回等腰线
,例如A=5b=5c=20
,但它实际上不是三角形。下面的任何一个答案都会帮您解决。谢谢。错过了该用例。我将其更改为“非三角形”,但它仍然给出了一个错误。((A+B)
应该是((A+B)在进行更改后,测试用例仍然会出错您的问题是您的代码将返回Isosceles
,例如A=5b=5c=20
,而这实际上不是一个三角形。下面的任何一个答案都会帮您解决。谢谢。错过了那个用例。我从另一篇文章中看到了这个答案。但我不明白为什么de I Write不起作用。因为,在声明它为三角形之前,您并没有检查它是否是三角形Scalene@JonathanVanDam实际上,他在称之为“等腰”之前并没有检查它是否是三角形。谢谢@Nick我在这一点上说错了。我在另一篇帖子中看到了这个答案。但我不明白为什么我写了这个代码e不起作用。因为,在声明它为三角形之前,你并没有检查它是否是三角形Scalene@JonathanVanDam事实上,他在称之为“等腰”之前并没有检查它是否是三角形。