问题陈述:
找出所有边都为整数且所有边等于或小于 10 的周长为 24 的直角三角形。
以下两个解决方案中的哪个解决方案正确解释了问题并给出了正确的答案?
如果第一个解决方案不正确,那么在类似情况下如何避免此类编程错误?
第一个解决方案:
ghci> let rightTriangles = [(a, b, c) | a <- [1..10], b <- [1..10], c <- [1..10], a^2 + b^2 == c^2, a+b+c == 24]
ghci> rightTriangles
[(6,8,10),(8,6,10)]
第二种解决方案:
ghci> let rightTriangles' = [ (a,b,c) | c <- [1..10] , b <- [1..c] , a <- [1..b] , a^2 + b^2 == c^2, a+b+c == 24]
ghci> rightTriangles'
[(6,8,10)]