Sha256: e309808b87f1936a1f2e6ed8a40adbdc12fae182fff9280242b2bf98cda3190e
Contents?: true
Size: 1.29 KB
Versions: 85
Compression:
Stored size: 1.29 KB
Contents
import java.util.HashSet; import java.util.Set; class Triangle { private double side1; private double side2; private double side3; Triangle(double side1, double side2, double side3) throws TriangleException { this.side1 = side1; this.side2 = side2; this.side3 = side3; if (allSidesAreZero() || hasImpossibleSides() || violatesTriangleInequality()) { throw new TriangleException(); } } TriangleKind getKind() { int uniqueSides = getNumberOfUniqueSides(); if (uniqueSides == 1) { return TriangleKind.EQUILATERAL; } if (uniqueSides == 2) { return TriangleKind.ISOSCELES; } return TriangleKind.SCALENE; } private boolean allSidesAreZero() { return side1 == 0 && side2 == 0 && side3 == 0; } private boolean hasImpossibleSides() { return side1 < 0 || side2 < 0 || side3 < 0; } private boolean violatesTriangleInequality() { return side1 + side2 <= side3 || side1 + side3 <= side2 || side2 + side3 <= side1; } private int getNumberOfUniqueSides() { Set<Double> sides = new HashSet<>(); sides.add(side1); sides.add(side2); sides.add(side3); return sides.size(); } }
Version data entries
85 entries across 85 versions & 1 rubygems