diff --git a/solutions/cpp/triangle/1/triangle.cpp b/solutions/cpp/triangle/1/triangle.cpp new file mode 100644 index 0000000..6738222 --- /dev/null +++ b/solutions/cpp/triangle/1/triangle.cpp @@ -0,0 +1,21 @@ +#include "triangle.h" +#include + +namespace triangle { + flavor kind(double a, double b, double c) { + if (a <= 0 || b <= 0 || c <= 0 || (a + b < c) || (b + c < a) || (a + c < b)) { + throw std::domain_error("No es un triangulo real."); + } + + if (a == b && b == c) { + return flavor::equilateral; + } + else if (a != b && b != c && a != c) { + return flavor::scalene; + } + else { + return flavor::isosceles; + } +} + +} \ No newline at end of file diff --git a/solutions/cpp/triangle/1/triangle.h b/solutions/cpp/triangle/1/triangle.h new file mode 100644 index 0000000..484b4eb --- /dev/null +++ b/solutions/cpp/triangle/1/triangle.h @@ -0,0 +1,12 @@ +#pragma once + +namespace triangle { + + enum class flavor { + equilateral, + isosceles, + scalene + }; + flavor kind(double a, double b, double c); + +} \ No newline at end of file