53 lines
No EOL
1.4 KiB
Markdown
53 lines
No EOL
1.4 KiB
Markdown
# Triangle
|
|
|
|
Welcome to Triangle on Exercism's Prolog Track.
|
|
If you need help running the tests or submitting your code, check out `HELP.md`.
|
|
|
|
## Instructions
|
|
|
|
Determine if a triangle is equilateral, isosceles, or scalene.
|
|
|
|
An _equilateral_ triangle has all three sides the same length.
|
|
|
|
An _isosceles_ triangle has at least two sides the same length.
|
|
(It is sometimes specified as having exactly two sides the same length, but for the purposes of this exercise we'll say at least two.)
|
|
|
|
A _scalene_ triangle has all sides of different lengths.
|
|
|
|
## Note
|
|
|
|
For a shape to be a triangle at all, all sides have to be of length > 0, and the sum of the lengths of any two sides must be greater than or equal to the length of the third side.
|
|
|
|
In equations:
|
|
|
|
Let `a`, `b`, and `c` be sides of the triangle.
|
|
Then all three of the following expressions must be true:
|
|
|
|
```text
|
|
a + b ≥ c
|
|
b + c ≥ a
|
|
a + c ≥ b
|
|
```
|
|
|
|
See [Triangle Inequality][triangle-inequality]
|
|
|
|
[triangle-inequality]: https://en.wikipedia.org/wiki/Triangle_inequality
|
|
|
|
## Bonus: mixed types
|
|
|
|
If you're up for it, there are a couple of bonus tests where the types of the arguments are not all the same.
|
|
These tests are optional, so you don't _have_ to solve before submitting your solution.
|
|
|
|
## Source
|
|
|
|
### Created by
|
|
|
|
- @qjd2413
|
|
|
|
### Contributed to by
|
|
|
|
- @parkerl
|
|
|
|
### Based on
|
|
|
|
The Ruby Koans triangle project, parts 1 & 2 - https://web.archive.org/web/20220831105330/http://rubykoans.com |