Tugas:
Program Anda diberi fraksi sederhana positif dan tepat dalam format .<numerator>/<denominator>
Untuk input ini, ia harus menemukan dua fraksi.
- Sebagian kecil yang kurang dari input.
- Sebagian kecil yang lebih besar dari input.
Kedua fraksi harus memiliki penyebut yang lebih rendah daripada input. Dari semua fraksi yang mungkin, mereka harus memiliki perbedaan terendah ke input.
Keluaran:
Output program Anda harus:
- Sebagian kecil dari input, dalam format
<numerator>/<denominator>
. - Diikuti oleh karakter spasi (ASCII-code 32).
- Diikuti oleh fraksi yang lebih besar dari input, dalam format
<numerator>/<denominator>
.
Sebagai berikut:
«fraction that is < input» «fraction that is > input»
Aturan:
- Semua fraksi yang dikeluarkan harus dalam nilai terendah .
- Semua fraksi yang dihasilkan harus fraksi yang tepat.
- Jika tidak ada fraksi yang tepat yang dimungkinkan oleh aturan, Anda harus mengeluarkan,
0
bukannya input <pecahan, dan1
bukannya input pecahan>. - Anda dapat memilih apakah Anda ingin menerima fraksi sebagai argumen baris perintah (misalnya
yourprogram.exe 2/5
) atau meminta input pengguna. - Anda dapat menganggap program Anda tidak akan menerima input yang tidak valid.
- Kode terpendek (dalam byte, dalam bahasa apa pun) menang.
Argumen baris perintah non-standar (argumen yang biasanya tidak diperlukan untuk menjalankan skrip) dihitung terhadap jumlah total karakter.
Apa yang tidak boleh dilakukan oleh program Anda :
- Bergantung pada sumber daya eksternal apa pun.
- Bergantung pada memiliki nama file tertentu.
- Output apa pun selain output yang dibutuhkan.
- Butuh waktu yang sangat lama untuk dijalankan. Jika program Anda berjalan lebih dari satu menit untuk pecahan dengan pembilang dan penyebut 6 digit (mis.
179565/987657
) Pada komputer pengguna rumahan rata-rata, itu tidak valid. - Fraksi keluaran dengan
0
sebagai penyebut. Anda tidak dapat membaginya dengan nol. - Fraksi keluaran dengan
0
sebagai pembilang. Program Anda harus menampilkan0
bukan sebagian kecil. - Kurangi fraksi yang dimasukkan. Jika fraksi yang diberikan sebagai input dapat direduksi, Anda harus menggunakan fraksi seperti yang diinput.
- Program Anda tidak boleh ditulis dalam bahasa pemrograman yang tidak ada kompiler / juru bahasa yang tersedia untuk umum sebelum tantangan ini diposting.
Contoh:
Input: 2/5
Keluaran: 1/3 1/2
Input: 1/2
Keluaran: 0 1
Input: 5/9
Keluaran: 1/2 4/7
Input: 1/3
Keluaran: 0 1/2
Input: 2/4
Keluaran: 1/3 2/3
Input: 179565/987657
Keluaran: 170496/937775 128779/708320
1/3 1/2
.