3.6 of 5 7,063 reviews Redmond, WA 5000+ Employees

Microsoft Software Development Engineer In Test (SDET) Interview Question

I interviewed in Redmond, WA and was asked:
"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"
Add Tags [?]
Answer Flag Question

Part of a Software Development Engineer In Test (SDET) Interview Review - one of 3,185 Microsoft Interview Reviews

Answers & Comments

of 0
testing use of ==, got a feeling he wanted to use bit level comparisons to compare sides lengths
- Interview Candidate on Feb 19, 2013 Flag Response
of 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 Jul 21, 2013 Flag Response
of 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 Jul 21, 2013 Flag Response
of 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,
    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";
        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:
- Peter on Jul 21, 2013 Flag Response

To comment on this question, Sign In with Facebook or Sign Up

Microsoft – Why Work for Us?

What do you want in a job? Do you want more than a paycheck? At Microsoft, you can discover potential you didn’t know you had, push your limits, turn your ideas into reality and make a real impact on the industry and… Full Overview

Provided by employer [?]

Tags are like keywords, helping to categorise interview questions that have something in common.

Glassdoor is your free inside look at Microsoft interview questions and advice. All interview reviews are posted anonymously by Microsoft employees and interview candidates.