मैं एक विशाल लेगो रोबोट का निर्माण कर रहा हूं और मुझे गियर के सेट का उपयोग करके कुछ विशेष गियर अनुपात उत्पन्न करने की आवश्यकता है। मेरे पास आम लेगो गियर के आकार के साथ बहुत सारे गियर हैं: 8, 16, 24, या 40 दांत। एक प्रोग्राम लिखें जिसका मैं उपयोग कर सकता हूं जहां मैं एक गियरिंग अनुपात इनपुट करता हूं और कार्यक्रम मुझे बताता है कि अनुरोधित अनुपात प्राप्त करने के लिए मुझे गियर का कौन सा संयोजन उपयोग करना चाहिए।
इनपुट अनुपात मानक इनपुट (या आपकी भाषा के समतुल्य) पर एक कॉलोन द्वारा अलग किए गए दो पूर्णांकों के साथ निर्दिष्ट किया जाएगा। अनुपात का a:bअर्थ है कि आउटपुट शाफ्ट को a/bइनपुट शाफ्ट के रूप में तेजी से मोड़ना चाहिए ।
मानक आउटपुट का आउटपुट एकल पंक्ति होना चाहिए जिसमें गियर अनुपात की अंतरिक्ष-पृथक सूची होती है, x:yजहां xइनपुट शाफ्ट पर गियर yका आकार होता है और आउटपुट शाफ्ट पर गियर का आकार होता है। आपको दिए गए अनुपात के लिए न्यूनतम संभव संख्या का उपयोग करना चाहिए। प्रत्येक xऔर yसे एक होना चाहिए 8,16,24,40।
उदाहरण:
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
यदि वांछित गियर अनुपात असंभव है, तो "IMPOSSIBLE" प्रिंट करें। यदि कोई गियर की आवश्यकता नहीं है, तो खाली स्ट्रिंग प्रिंट करें।
यह कोड गोल्फ, सबसे छोटी उत्तर जीत है।
1:5 -> 8:40और 10:1 -> 40:8समझ में आता है लेकिन दूसरों को इतना नहीं।
1:5इसका मतलब है कि आउटपुट शाफ्ट 5 गुना धीमा होता है, और इनपुट पर 8 टूथ गियर और आउटपुट पर 40 टूथ गियर होता है।
10:1 -> 40:8 16:8नहीं, जो आपने कहा। दूसरों के बारे में आपको क्या भ्रम है? दो बार 9:4कर लागू 3:2किया गया है। 3:2का उपयोग कर कार्यान्वित किया जाता है 24:16।
7:7के रूप में ही है 1:1, इसलिए इसे लागू करने के लिए कोई गियर की आवश्यकता नहीं है।