trying to simplify an algorithm
Johan V.
johan at localhost.localdomain
Sun Feb 27 17:36:32 PST 2005
Archaic wrote:
> The problem to solve is 3 inputs from the user. The output has to be
> nothing more than equilateral, isosceles, scalene, or not a triangle. My
> algorithm feels a bit clunky and I would like to streamline it if
> possible. The input will be sanitized to allow only int and float (both
> positive and negative) to get this far, so my only concern is just with
> this algorithm.
>
> Any suggestions?
>
> <pseudo-code>
>
> if a + b + c = 360
> if a = b
> if b = c
> equilateral
> else
> isosceles
> else
> if a = c || b = c
> isosceles
> else
> scalene
> else
> not a triangle
>
> </pseudo-code>
>
How about:
return ( a+b+c == 180 ) * (a>0) * (b>0) * (c>0) *
( 1 + (a==b) + (a==c) + (b==c) );
0 : not a triangle
1 : scalene
2 : isosceles
4 : equilateral
:)
More information about the lfs-chat
mailing list