Dev bir lego robotu yapıyorum ve bir takım dişliler kullanarak belirli dişli oranları oluşturmam gerekiyor. 8, 16, 24 veya 40 diş: Lego'nun ortak ebatlarına sahip çok fazla vitesim var. Bir dişli oranını girdiğim yerde kullanabileceğim bir program yazın ve program, istenen oranı elde etmek için hangi vites kombinasyonunu kullanmam gerektiğini söyler.
Giriş oranı standart girişte (veya dilinizin eşdeğeri) iki noktadan iki noktayla ayrılmış olarak belirtilecektir. Bir oran a:b
çıkış mili dönüş gerektiği vasıtasıyla a/b
giriş mili gibi hızlı kez.
Standart çıktıya çıkış şeklinde dişli oranlarının bir boşluk ile ayrılmış listesini içeren tek bir çizgi olmalıdır x:y
burada x
giriş mili üzerine dişli boyutundadır ve y
çıkış mili üzerine dişli boyutundadır. Verilen oran için mümkün olan en düşük vites sayısını kullanmanız gerekir. Her biri x
ve y
biri olmalı 8,16,24,40
.
örnekler:
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
İstenilen vites oranı imkansızsa, "GELİŞMİŞ" i yazdırın. Dişliler gerekli değilse, boş dizgeyi yazdırın.
Bu kod golf, en kısa cevap kazanıyor.
1:5 -> 8:40
ve 10:1 -> 40:8
mantıklı ama diğerleri çok değil.
1:5
çıkış şaftının 5 kat daha yavaş döndüğü ve giriş üzerinde 8 dişli ve çıkış üzerinde 40 dişli olması anlamına gelir.
10:1 -> 40:8 16:8
gibi değil. Peki ya diğerleri kafanı karıştırıyor? iki kez 9:4
yaparak uygulanır 3:2
. 3:2
kullanılarak uygulanır 24:16
.
7:7
aynıdır 1:1
, bu yüzden uygulamak için dişliler gerektirmez.