에서 http://en.wikipedia.org/wiki/Triangle :
세 개의 2 차원 좌표 튜플 (Cartesian)을 취하고이 세 점이 어떤 모양을 나타내는 지 분류하는 프로그램을 작성하십시오.
거의 모든 경우에이 점은 다양한 유형의 삼각형을 나타냅니다. 일부 퇴보 된 경우 점은 단일 점 또는 직선을 나타냅니다. 프로그램은 다음 중 어떤 태그가 설명 된 모양에 적용되는지 결정합니다.
- 포인트 (3 포인트 동시 대응)
- 선 (3 점은 직선 상에 있음-2 점을 초과 할 수 없음)
- 등변 (3면 동일, 3 각 동일)
- 이등변 (2 변이 같고 2 각이 같음)
- Scalene (0 변이 같고 0 각이 같음)
- 오른쪽 (1 각 정확히 π / 2 (또는 90 °))
- 비스듬한 각도 (0 각 정확히 π / 2 (또는 90 °))
- 둔각 (1 개 각도> π / 2 (또는 90 °))
- 예각 (3 각 <π / 2 (또는 90 °))
설명 된 모양의 경우 위의 태그 중 하나 이상이 적용됩니다. 예를 들어, 직각은 이등변 또는 스케일입니다.
입력
- 이 프로그램은 STDIN, 명령 행, 환경 변수 또는 선택한 언어에 편리한 모든 방법에서 3 개의 입력 좌표를 읽을 수 있습니다.
- 입력 좌표는 형식이 지정되어 있지만 선택한 언어에 편리합니다. 사용하는 데이터 유형과 관련하여 모든 입력 번호의 형식이 올바른 것으로 가정 할 수 있습니다.
- 입력 좌표의 순서에 대해서는 아무것도 가정 할 수 없습니다.
산출
- 프로그램은 STDOUT, 대화 상자 또는 선택한 언어에 편리한 표시 방법으로 출력됩니다.
- 출력은 입력 좌표로 설명 된 모양에 적용 가능한 모든 태그를 표시합니다.
- 태그는 어떤 순서로도 출력 될 수 있습니다.
다른 규칙
- 귀하의 언어 삼각법 라이브러리 / API는 허용되지만 삼각형 유형을 구체적으로 계산하는 API는 금지됩니다.
- 각도의 길이 또는 변의 길이를 결정할 때 부동 소수점 값을 비교하게 될 수 있습니다. 하나가 다른 하나의 1 % 내에있는 경우 이러한 두 값은 "동일"한 것으로 간주됩니다.
- 더 이상 재미없는 표준“허점”
- 이것은 code-golf 이므로 바이트 단위의 최단 답변이 이깁니다.
예
Input Output
(1,2) (1,2) (1,2) Point
(1,2) (3,4) (5,6) Line
(0,0) (1,1) (2,0) Isosceles Right
(0,0) (2,1) (10,1) Scalene Oblique Obtuse