Cookies help us deliver our services. By using our services, you agree to our use of cookies. Click here to learn more

Interview Question

Software Development Engineer In Test (SDET) 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 19 Feb 2013
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 21 Jul 2013
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 21 Jul 2013
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 21 Jul 2013

Add Answers or Comments

To comment on this, Sign In or Sign Up.