如何取得所有三边长度皆为整数且小于等于
10
,周长为
24 的直角三角形?
1、创建集合:
将所有三角形的情况都列出来。
ghci> let triangles = [ (a,b,c) | c <- [1..10], b <- [1..10], a <- [1..10] ]
2、增加限制条件,直角三角形:
直角三角形,两边之和等于第三遍,同时设定三边长度范围。
ghci> let rightTriangles = [ (a,b,c) | c <- [1..10], b <- [1..c], a <- [1..b], a^2 + b^2 == c^2]
3、增加限制条件,周长为24:
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)]