Dari http://en.wikipedia.org/wiki/Triangle :
Tulislah sebuah program yang membutuhkan tiga tupel koordinat 2d (Kartesius), dan klasifikasikan bentuk apa yang dijelaskan ketiga poin ini.
Dalam hampir semua kasus, titik-titik ini akan menggambarkan segitiga dengan berbagai jenis. Dalam beberapa kasus yang merosot, titik-titik tersebut akan menggambarkan titik tunggal atau garis lurus. Program akan menentukan tag mana yang berlaku untuk bentuk yang dijelaskan:
- Poin (3 poin adalah insiden bersama)
- Garis (3 poin terletak pada garis lurus - tidak lebih dari 2 poin dapat terjadi bersamaan)
- Sama sisi (3 sisi sama, 3 sudut sama)
- Sama kaki (2 sisi sama, 2 sudut sama)
- Scalene (0 sisi sama, 0 sudut sama)
- Kanan (1 sudut tepat π / 2 (atau 90 °))
- Miring (0 sudut persis π / 2 (atau 90 °))
- Obtuse (1 sudut> π / 2 (atau 90 °))
- Akut (3 sudut <π / 2 (atau 90 °))
Perhatikan bahwa untuk beberapa bentuk yang dijelaskan, lebih dari satu tag di atas akan berlaku. Sebagai contoh, setiap sudut siku-siku juga akan sama kaki atau sama sisi.
Memasukkan
- Program ini dapat membaca 3 input koordinat dari STDIN, baris perintah, variabel lingkungan atau metode apa pun yang sesuai untuk bahasa pilihan Anda.
- Input mengoordinasikan format saya namun nyaman untuk bahasa pilihan Anda. Dapat diasumsikan bahwa semua nomor input terbentuk dengan baik sehubungan dengan tipe data yang akhirnya Anda gunakan.
- Tidak ada yang dapat diasumsikan tentang pemesanan koordinat input.
Keluaran
- Program akan menampilkan ke STDOUT, kotak dialog atau metode tampilan apa pun yang sesuai untuk bahasa pilihan Anda.
- Output akan menampilkan semua tag yang berlaku untuk bentuk yang dijelaskan oleh koordinat input.
- Tag dapat berupa output dalam urutan apa pun.
Peraturan Lainnya
- Pustaka / API trigonometri bahasa Anda diizinkan, tetapi API apa pun yang secara spesifik menghitung jenis segitiga dilarang.
- Saat menentukan persamaan sudut atau panjang sisi, Anda mungkin akan akhirnya membandingkan nilai titik apung. Dua nilai tersebut harus dianggap "sama" jika satu berada dalam 1% dari yang lain.
- Standar “celah” yang tidak lagi lucu
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Contohnya
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