मेरे पास एक काउंटर है। यह एक छोटा उपकरण है जो इस तरह दिखता है:
डिस्प्ले से जाता 0000
है 9999
। इसके शीर्ष पर थोड़ा पुश-बटन है जो गिनती को 1 से बढ़ाता है, और दाईं ओर थोड़ा घुंडी जिसका उद्देश्य काउंटर को 0 पर रीसेट करना है।
अब, छोटी घुंडी के बारे में बात यह है कि यदि आप इसे पीछे की ओर मोड़ते हैं, तो आप इसे किसी भी अंक को बढ़ा सकते हैं जिसे आप एक बार फिर से चालू करना चाहते हैं। इसलिए यदि मैं काउंटर बटन को 10 बार धक्का देता हूं ताकि काउंटर दिखाता है 0010
, मैं तब तक नॉब को पीछे की ओर मोड़ सकता हूं जब तक कि मैं एक छोटा क्लिक नहीं सुनता हूं, फिर इसे फिर से चालू करें और इसे सीधे जाएं 0090
।
लेकिन, घुंडी हमेशा एक ही अंक की सभी घटनाओं को 1 से बढ़ाएगी हर बार यह संख्या को आगे बढ़ाता है। इसलिए यदि काउंटर दिखाता है 6060
, तो आप केवल इसे बढ़ा सकते हैं 7070
, 6070
या नहीं 7060
। इसके अलावा, घुंडी शुरू करेगी 9
रों से अधिक करने के लिए 0
ले जाने के बिना, इसलिए 0990
करने के लिए आगे बढ़ाएंगे 0000
के बजाय 1000
या 1100
।
मैं एक निश्चित संख्या के लिए काउंटर सेट करने का सबसे कुशल तरीका जानना चाहता हूं। आपका कार्य एक प्रोग्राम या फ़ंक्शन लिखना है जो बटन पुश के सबसे कम अनुक्रम को निर्धारित करेगा और ऐसा करने के लिए आवश्यक घुंडी प्रगति करेगा।
आपका कार्यक्रम इनपुट के रूप में से एक 4 अंकों की संख्या ले जाएगा 0000
करने के लिए 9999
, और निम्न प्रारूप में चरणों की एक श्रृंखला वापसी:
> 0001
C
> 0093
C12345678C12345678CCC
> 1000
C12345678C12345678C12345678C12345678C12345678C12345678C12345678C
> 9999
012345678
जहाँ C
"काउंटर बटन को पुश" करने के लिए और D
0 से 9 तक के किसी भी अंक के लिए खड़ा है "के सभी घटनाओं को आगे बढ़ाने के लिए घुंडी का उपयोग करें।"D
"1 के ।
आपके कार्यक्रम में सभी संभावित चार-अंकीय संयोजनों के लिए चरणों का एक मान्य अनुक्रम होना चाहिए, और सभी 10,000 मामलों के लिए आवश्यक चरणों की कुल संख्या से स्कोर किया जाएगा। एक टाई के मामले में (इष्टतम एल्गोरिथ्म पाए जाने पर सबसे अधिक संभावना है), कम कोड जीत जाएगा।
0010
में0020
उस मामले में? या आप केवल घुंडी को पीछे की ओर मोड़ सकते हैं? और यह भी, प्रत्येक "डी" की गिनती घुंडी की उन्नति के "डी" संख्या के रूप में होती है (उदाहरण के लिए, करता है1234567
मतलब है कि घुंडी को 1 बार, फिर 2 बार, फिर 3 बार, इतनी आगे की तरफ मोड़ें)? या क्या यह सिर्फ प्रत्येक अलग घुंडी बारी का संकेत देता है (उदाहरण के लिए, इसका1234567
मतलब सिर्फ घुंडी को 7 बार मोड़ना है)?