जब मैं एक बच्चा था, और अपने जीवन की बचत में डॉलर के बिलों को गिनना चाहता था, तो मैं ज़ोर से गिनूंगा:
एक दो तीन चार पांच छ सात आठ नौ दस;
ग्यारह, बारह, तेरह, चौदह, पंद्रह, सोलह, सत्रह, अठारह, उन्नीस, बीस;
इक्कीस, बाईस, तेईस, चौबीस, पच्चीस ...
आखिरकार मैं इनमें से प्रत्येक बहु-शब्दांश संख्या का उच्चारण करते हुए थक गया। गणितीय रूप से दिमागदार होने के कारण, मैंने गिनती का एक और अधिक कुशल तरीका बनाया:
एक दो तीन चार पांच छ सात आठ नौ दस;
एक, दो, तीन, चार, पांच, छह, सात, आठ, नौ, बीस;
एक, दो, तीन, चार, पांच, छह, सात, आठ, नौ, तीस ...
जैसा कि आप देख सकते हैं, मैं केवल अंकों (अंकों) का उच्चारण करूंगा जो पिछले संख्या से बदल गए हैं। इसका अतिरिक्त लाभ यह है कि यह संख्याओं के लिए अंग्रेजी नामों की तुलना में काफी अधिक दोहरावदार है, और इसलिए गणना करने के लिए कम मस्तिष्क शक्ति की आवश्यकता होती है।
चुनौती
एक प्रोग्राम / फ़ंक्शन लिखें जो एक सकारात्मक पूर्णांक में ले जाता है और आउटपुट / रिटर्न देता है कि मैं इसे कैसे गिनूंगा: यह है, सही-शून्य शून्य अंक और सभी अनुगामी शून्य।
उदाहरण
1 1
2 2
10 10
11 1
29 9
30 30
99 9
100 100
119 9
120 20
200 200
409 9
1020 20
परीक्षण-मामलों की पूरी सूची आवश्यक नहीं होनी चाहिए। यह OEIS पर A274206 है।
नियम
- आपका प्रवेश सभी सकारात्मक पूर्णांकों के लिए सैद्धांतिक रूप से काम करना चाहिए, सटीक और स्मृति मुद्दों की अनदेखी करना।
- इनपुट और आउटपुट दशमलव में होना चाहिए।
- आप संख्या, स्ट्रिंग या अंकों की एक सरणी के रूप में इनपुट और / या आउटपुट लेना चुन सकते हैं।
- इनपुट एक सकारात्मक पूर्णांक होने की गारंटी है। आपकी प्रविष्टि अमान्य इनपुट के लिए कुछ भी कर सकती है।
यह कोड-गोल्फ है , इसलिए बाइट्स में सबसे छोटा कोड जीत जाता है।
[1,0,2,0]
->[2,0]
अंतिम परीक्षण मामले के लिए? (मैं "एकल-आइटम सरणी" वाक्यांश पर अस्पष्ट हूं)।