Leonardo da Pisano alias Fibonacci berperan penting dalam membawa sistem angka Hindu-Arab ke Eropa. Sebelum itu, matematikawan di sana bekerja di basis enam puluh dengan angka Romawi.
Sebagai contoh, akar kuadrat dari dua dapat diperkirakan sebagai: satu dan dua puluh empat bagian dari enam puluh dan lima puluh satu bagian dari tiga ribu enam ratus , dan ditulis sebagai: i xxiv li , dengan penskalaan ditentukan oleh konteks. Pada saat itu, "ketiadaan" diketahui ( yaitu nol), tetapi tidak memiliki representasi standar dalam sistem angka ini.
Seandainya Fibonacci mengabaikan angka desimal yang baru saja dia temui selama perjalanannya, dia pasti akan mengatasi kekurangan dalam sistem saat ini. Sistem yang lebih baik ini kita sebut seksagesimal Fibonacci .
Tugas Anda adalah menulis potongan program, fungsi, atau kode yang mengambil angka floating point dalam ASCII atau format biner dan menghasilkan enam puluh angka Romawi dasar. Input dapat berupa file, konsol, baris perintah atau argumen fungsi dan output dapat berupa file atau konsol, mana yang paling mudah.
Outputnya bisa huruf besar atau kecil, dan harus mencakup perbaikan ini:
- gunakan n atau N untuk menunjukkan nol yang berarti suatu tempat tidak memiliki nilai, yaitu "nol" (masalah dengan sistem)
- gunakan e atau E untuk menunjukkan et yang sesuai dengan titik seksagesimal (masalah lain dengan sistem)
- gunakan titik tengah · atau tanda bintang * untuk memisahkan kelompok angka Romawi (masalah lain dengan sistem)
Asumsikan input adalah floating point dengan mantissa tidak lebih besar dari lix · lix · lix · lix · lix . Pecahan kurang dari n · e · n · n · n · n · saya dapat diabaikan. Jadi, asalkan input memiliki batasan ini, paling banyak sepuluh kelompok angka Romawi dengan satu e dapat dihasilkan.
Angka kurang dari saya harus memiliki n · e terkemuka untuk memastikan konteksnya jelas.
Beberapa contoh: input
→ output
0
→ n1
→ i60
→ i · n0.1
→ n · e · vi3600
→ i · n · n10.5
→ x · e · xxx16777215
→ i · xvii · xl · xx · xv3.1415926536
→ iii · e · viii · xxix · xliv · n · xlvii
Keluaran harus menghindari pengarah n · yang tidak perlu pada bagian mantissa, mengisolasi e , atau mengeklik · n pada bagian fraksional dari keluaran. Jadi misalnya, n · n · n · n · i , i · e , dan saya · e · n · n · n · n · n · n adalah output yang salah untuk input 1
.
Perbedaan plus atau minus n · e · n · n · n · n · i dalam output berada dalam toleransi dan dapat diterima.
Input adalah sembarang titik apung dalam bahasa pilihan Anda, jadi dapat menyertakan eksponen positif atau negatif selama input tidak berada di luar kisaran yang ditentukan di atas.
Dan akhirnya, angka Romawi built-in yang diperbolehkan!