trying to simplify an algorithm

Anderson Lizardo lizardo at
Thu Feb 3 08:36:06 PST 2005

On Thursday 03 February 2005 10:23, 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?

Usually, on these kinds of problem, the inputs are edges, not angles (at least 
my first C++ exercise was using edges :-)), specially because you didn't 
specify (and AFAIK, it's not possible to identify this automatically) if the 
input angles are internal or external to the triangle.

IIRC, the sum of external angles on a triangle is 360° and internal ones is 

Also note that a equilateral triangle is also scalene, but I suppose for the 
purposes of this "problem" it should classify a equilateral triangle as only 

If you plan to have edges as input (supposing you have a choice ;-), the 
following should work:

if a < b + c and b < a + c and c < a + b then
  if a = b and b = c then { Implies a = c }
  else if a = b or b = c or a = c then
    not a triangle

Anderson Lizardo
lizardo at

More information about the lfs-chat mailing list