จากhttp://en.wikipedia.org/wiki/Triangle :
เขียนโปรแกรมที่ใช้ tuples พิกัด 2d (คาร์ทีเซียน) สามมิติและจำแนกประเภทของจุดสามจุดที่อธิบาย
ในเกือบทุกกรณีจุดเหล่านี้จะอธิบายรูปสามเหลี่ยมชนิดต่าง ๆ ในบางกรณีความเสื่อมคะแนนจะอธิบายจุดเอกพจน์หรือเส้นตรง โปรแกรมจะพิจารณาว่าแท็กใดต่อไปนี้ที่ใช้กับรูปร่างที่อธิบายไว้:
- จุด (3 คะแนนเป็นเหตุการณ์ร่วม)
- เส้น (3 คะแนนอยู่ในแนวเส้นตรง - อาจมีเหตุการณ์ร่วมไม่เกิน 2 จุด)
- ด้านเท่ากันหมด (3 ด้านเท่ากัน 3 มุมเท่ากัน)
- หน้าจั่ว (2 ด้านเท่ากัน 2 มุมเท่ากัน)
- Scalene (0 ด้านเท่ากัน, 0 มุมเท่ากัน)
- ขวา (1 มุมทั้งหมดπ / 2 (หรือ 90 °))
- เอียง (0 มุมทั้งหมด exactly / 2 (หรือ 90 °))
- ป้าน (1 มุม> π / 2 (หรือ 90 °))
- เฉียบพลัน (3 มุม <π / 2 (หรือ 90 °))
โปรดทราบว่าสำหรับรูปร่างที่อธิบายไว้บางส่วนจะใช้แท็กมากกว่าหนึ่งรายการด้านบน ตัวอย่างเช่นมุมฉากใด ๆ ก็จะเป็นหน้าจั่วหรือย้วย
อินพุต
- โปรแกรมอาจอ่านค่าพิกัด 3 ค่าจาก STDIN, บรรทัดคำสั่ง, ตัวแปรสภาพแวดล้อมหรือวิธีการใดก็ได้ที่สะดวกสำหรับภาษาที่คุณเลือก
- การป้อนข้อมูลพิกัดจะจัดรูปแบบของฉัน แต่สะดวกสำหรับภาษาที่คุณเลือก สามารถสันนิษฐานได้ว่าหมายเลขอินพุตทั้งหมดมีรูปแบบที่ถูกต้องตามประเภทข้อมูลที่คุณใช้
- ไม่มีสิ่งใดสามารถคาดเดาได้เกี่ยวกับการเรียงลำดับของพิกัดอินพุต
เอาท์พุต
- โปรแกรมจะส่งออกไปยัง STDOUT, กล่องโต้ตอบหรือวิธีการแสดงผลใด ๆ ที่สะดวกสำหรับภาษาที่คุณเลือก
- เอาต์พุตจะแสดงแท็กทั้งหมดที่ใช้กับรูปร่างที่อธิบายโดยพิกัดอินพุต
- แท็กอาจถูกส่งออกในลำดับใด ๆ
กฎอื่น ๆ
- ไลบรารี่ตรีโกณมิติในภาษาของคุณได้รับอนุญาต แต่ API ใด ๆ ที่คำนวณเฉพาะประเภทสามเหลี่ยมจะถูกแบน
- เมื่อพิจารณาความเท่าเทียมกันของมุมหรือความยาวของด้านคุณอาจจะสิ้นสุดการเปรียบเทียบค่าจุดลอย สองค่าดังกล่าวจะได้รับการพิจารณาว่า "เท่ากัน" หากค่านั้นอยู่ภายใน 1% ของค่าอื่น ๆ
- “ ช่องโหว่” มาตรฐานซึ่งไม่ตลกอีกต่อไป
- นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ
ตัวอย่าง
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