Saya sedang membangun robot lego raksasa dan saya perlu membuat beberapa rasio roda gigi tertentu menggunakan satu set roda gigi. Saya memiliki banyak gigi dengan ukuran gigi lego yang umum: 8, 16, 24, atau 40 gigi. Tulis program yang bisa saya gunakan di mana saya memasukkan rasio roda gigi dan program memberi tahu saya kombinasi roda gigi mana yang harus saya gunakan untuk mendapatkan rasio yang diminta.
Rasio input akan ditentukan pada input standar (atau setara bahasa Anda) dengan dua bilangan bulat yang dipisahkan oleh titik dua. Rasio a:b
berarti bahwa poros keluaran harus berputar a/b
kali lebih cepat dari poros input.
Output ke output standar harus berupa garis tunggal yang berisi daftar rasio roda gigi yang dipisahkan oleh ruang, dalam bentuk di x:y
mana x
ukuran roda gigi pada poros input dan y
adalah ukuran roda gigi pada poros output. Anda harus menggunakan jumlah roda gigi minimum yang dimungkinkan untuk rasio yang diberikan. Masing x
- masing dan y
harus menjadi salah satu 8,16,24,40
.
contoh:
1:5 -> 8:40
10:1 -> 40:8 16:8
9:4 -> 24:16 24:16
7:1 -> IMPOSSIBLE
7:7 ->
6:15 -> 16:40
Jika rasio roda gigi yang diinginkan tidak mungkin, cetak "IMPOSSIBLE". Jika tidak diperlukan roda gigi, cetak string kosong.
Ini kode golf, jawaban terpendek menang.
1:5 -> 8:40
dan 10:1 -> 40:8
masuk akal tetapi yang lain tidak begitu banyak.
1:5
berarti poros keluaran berputar 5 kali lebih lambat, dan 8 gigi pada input dan 40 gigi pada output membuat itu terjadi.
10:1 -> 40:8 16:8
, tidak apa yang kamu katakan. Bagaimana dengan yang lain membingungkan Anda? 9:4
diimplementasikan melakukan 3:2
dua kali. 3:2
diimplementasikan menggunakan 24:16
.
7:7
sama dengan 1:1
, jadi tidak memerlukan roda gigi untuk diimplementasikan.