Interview Question

Interview Redmond, WA

Given a triangle, determine if its a scalene, equilateral

  , isosceles or neither... required knowledge of triangle properties, I learnt these properties about two decades ago so ofcourse I was fuzzy on the details, completely unexpected
Answer

Interview Answer

4 Answers

0

testing use of ==, got a feeling he wanted to use bit level comparisons to compare sides lengths

Interview Candidate on 2013-02-19
0

If the sides are all integers, then compare the length^2 instead of length to avoid the floating comparison; If the sides are floating numbers, then we need to set an epsilon to test. You'd better ask the interviewer about this. Asking this will definitely gives the interviewer better impression.... I believe :-)

Peter on 2013-07-21
0

BTW, if you are given the sides instead of points, the condition to make an triangle is: a+b > c && b+c > a && c+a > b

Peter on 2013-07-21
1

/* Q: Given a, b, c, determine if it can be the 3 sides of triangles, if yes determine if it's equilateral, isosceles, or scalene. */ #include <iostream> #include <string> #include <cmath> using namespace std; // Use this in real world typedef enum { NONE = 0, EQUILATERAL = 1, ISOCELES = 2, SCALENE = 3 } TriangleType; double Epsilon = 1.0E-6; string GetTriangleType(double a, double b, double c) { if (a+b > c && b+c > a && c+a > b) { bool ab = (fabs(a-b) < Epsilon); bool bc = (fabs(b-c) < Epsilon); bool ca = (fabs(c-a) < Epsilon); if (ab && bc && ca) return "Equilateral"; if (ab || bc || ca) return "Isoceles"; return "Scalene"; } else { return "None"; } } int main() { cout << GetTriangleType(3, 3, 3) << endl; cout << GetTriangleType(3, 3, 5) << endl; cout << GetTriangleType(3, 4, 5) << endl; cout << GetTriangleType(3, 4, 7) << endl; return 0; } /* Output: Equilateral Isoceles Scalene None */

Peter on 2013-07-21

Add Answers or Comments

To comment on this, Sign In or Sign Up.