Jadi, dalam matematika kelas 1, Anda mempelajari nama-nama poligon. Tiga sisi adalah segitiga, 4 adalah persegi, dan 5 adalah segilima. Namun, dalam penghargaan kelas 1, Anda melangkah lebih jauh.
Tantanganmu
Ada sistem penamaan untuk poligon di atas beberapa sisi, sehingga poligon besar sewenang-wenang memiliki nama.
Tugas Anda adalah menulis program atau fungsi yang menerima nama poligon sebagai input dan menampilkan jumlah sisi yang dimilikinya.
Nama-nama poligon didefinisikan seperti pada kolom kiri artikel wikipedia ini dengan beberapa pengecualian.
Tiga sisi poligon akan disebut segitiga alih-alih trigon dan 4 sisi poligon akan menjadi persegi alih-alih tetragon (anggap semua poligon itu teratur). Kalau tidak, nama-nama dalam artikel akan digunakan.
Aturan
- Input akan menjadi nilai string.
- Program harus mencetak hasilnya ke STDOUT (atau harus mengembalikan integer).
- Hanya poligon antara 3 dan 99 yang akan dimasukkan.
- Program Anda harus memenuhi semua kasus uji.
- Tidak ada celah standar.
- Program tidak perlu melakukan apa pun untuk input yang tidak valid / di luar jangkauan.
- Skor dalam byte. Karena ini adalah kode-golf , program terpendek menang.
Uji kasus
3 triangle
4 square
5 pentagon
10 decagon
11 hendecagon
12 dodecagon
13 triskaidecagon
20 icosagon
21 icosikaihenagon
22 icosikaidigon
34 triacontakaitetragon
35 triacontakaipentagon
36 triacontakaihexagon
47 tetracontakaiheptagon
48 tetracontakaioctagon
49 tetracontakaienneagon
64 hexacontakaitetragon
80 octacontagon
81 octacontakaihenagon
99 enneacontakaienneagon
Papan peringkat
Berikut ini adalah Stack Snippet untuk menghasilkan leaderboard biasa dan gambaran umum pemenang berdasarkan bahasa.
Untuk memastikan bahwa jawaban Anda muncul, silakan mulai jawaban Anda dengan tajuk utama, menggunakan templat Penurunan harga berikut:
# Language Name, N bytes
di mana N
ukuran kiriman Anda. Jika Anda meningkatkan skor Anda, Anda dapat menyimpan skor lama di headline, dengan mencoretnya. Contohnya:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Jika Anda ingin memasukkan beberapa angka dalam tajuk Anda (mis. Karena skor Anda adalah jumlah dari dua file atau Anda ingin membuat daftar hukuman penterjemah secara terpisah), pastikan bahwa skor sebenarnya adalah angka terakhir di tajuk:
# Perl, 43 + 2 (-p flag) = 45 bytes
Anda juga dapat membuat tautan nama bahasa yang kemudian akan muncul di cuplikan papan peringkat:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
sumber
Jawaban:
Ruby,
405207 byte207 byte
Tidak Digabungkan 207
405 byte:
Tidak dikumpulkan 405
Mungkin bukan pengiriman golf terbaik, tetapi mungkin memenangkan kontes kode yang membingungkan!
Uji
sumber
Python2 -
357368 byteKarena satu-satunya pengecualian nyata untuk sistem adalah "persegi", "hendecagon" dan "dodecagon", semua angka lainnya mengikuti pola yang sama dengan "kai" untuk digit kedua dan "conta" / "deca" untuk digit pertama mereka.
Penjelasan:
Ini berfungsi untuk semua input antara 3-99, dan mencetak hasilnya ke konsol.
Mungkin lebih golf, tapi ini sejauh yang saya bisa lakukan sekarang.
Edit **: Saya baru sadar, ini dicetak ke STDERR, bukan STDOUT. Kode tetap sedikit lebih lama:
sumber
q
bukansq
?import sys;
dan gunakan sajay=exit
. Itu melakukan hal yang sama.Cinnamon Gum, 430 byte
Non-bersaing sejak Cinnamon Gum dibuat setelah tantangan ini. Ini adalah hexdump dari kode sumber; Anda dapat membalikkannya menggunakan
xxd -r
.Cobalah online.
sumber