सोमवार मिनी-गोल्फ: लघु कोड-गोल्फ प्रश्नों की एक श्रृंखला , प्रत्येक सोमवार को पोस्ट (उम्मीद!)।
(क्षमा करें, मुझे फिर से देर हो गई है; मैं अपने कंप्यूटर से मूल रूप से सभी कल और आज से दूर था।)
हमें प्रोग्रामर (विशेषकर कोड-गोल्फर) यकीन है कि मनमाना पूर्णांक अनुक्रम पसंद करते हैं। यहां तक कि हमारे पास इन दृश्यों के लिए समर्पित एक पूरी साइट है जो वर्तमान में लगभग 200,000 प्रविष्टियां हैं। इस चुनौती में, हम इन अनुक्रमों के एक और सेट को लागू करेंगे।
चुनौती
आपकी चुनौती एक पूर्णांक N में होने वाले प्रोग्राम या फ़ंक्शन को लिखना है , और बेस 10 पूर्णांकों के अनुक्रम को आउटपुट करता है, जहां प्रत्येक अगला पूर्णांक इस तरह से निर्धारित किया जाता है:
- 1 से शुरू करें।
पिछले पूर्णांक आधार 10 अंक में प्रत्येक अंक D के लिए:
- यदि D 0 है, तो वर्तमान पूर्णांक में एक जोड़ें।
- अन्यथा, वर्तमान पूर्णांक को D से गुणा करें ।
विवरण
- आप मान सकते हैं कि 0 < N <2 31 ।
- आपको प्रत्येक पूर्णांक को अनुक्रम में आउटपुट करना होगा, जो इनपुट संख्या से शुरू होता है, जब तक कि संख्या 10 से कम नहीं हो जाती है।
- आउटपुट एक सरणी, या रिक्त स्थान, अल्पविराम, newlines, या इनमें से एक संयोजन द्वारा अलग किया जा सकता है।
- एक अनुगामी अंतरिक्ष और / या नई पंक्ति की अनुमति दी है, लेकिन है नहीं पीछे अल्पविराम।
- कभी भी अग्रणी जीरो नहीं होना चाहिए।
उदाहरण
उदाहरण 1: 77
यह उदाहरण काफी सीधा है:
77 = 1*7*7 = 49
49 = 1*4*9 = 36
36 = 1*3*6 = 18
18 = 1*1*8 = 8
इस प्रकार, उचित आउटपुट है 77 49 36 18 8
।
उदाहरण 2: 90
हमारे साथ हैं:
90 = 1*9+1 = 10
10 = 1*1+1 = 2
तो आउटपुट होगा 90 10 2
।
उदाहरण 3: 806
बाएं से दाएं समीकरण पढ़ें:
806 = 1*8+1*6 = 54 (((1*8)+1)*6)
54 = 1*5*4 = 20
20 = 1*2+1 = 3
आउटपुट होना चाहिए 806 54 20 3
।
परीक्षण के मामलों
प्रत्येक पंक्ति में पहला नंबर इनपुट है, और पूरी लाइन अपेक्षित आउटपुट है।
77 49 36 18 8
90 10 2
249 72 14 4
806 54 20 3
1337 63 18 8
9999 6561 180 9
10000 5
8675309 45369 3240 25 10 2
9999999 4782969 217728 1568 240 9
1234567890 362881 2304 28 16 6
संदर्भ के रूप में, यहां 10 से 100 तक अगले पूर्णांक हैं:
Current | Next
--------+-----
10 | 2
11 | 1
12 | 2
13 | 3
14 | 4
15 | 5
16 | 6
17 | 7
18 | 8
19 | 9
20 | 3
21 | 2
22 | 4
23 | 6
24 | 8
25 | 10
26 | 12
27 | 14
28 | 16
29 | 18
30 | 4
31 | 3
32 | 6
33 | 9
34 | 12
35 | 15
36 | 18
37 | 21
38 | 24
39 | 27
40 | 5
41 | 4
42 | 8
43 | 12
44 | 16
45 | 20
46 | 24
47 | 28
48 | 32
49 | 36
50 | 6
51 | 5
52 | 10
53 | 15
54 | 20
55 | 25
56 | 30
57 | 35
58 | 40
59 | 45
60 | 7
61 | 6
62 | 12
63 | 18
64 | 24
65 | 30
66 | 36
67 | 42
68 | 48
69 | 54
70 | 8
71 | 7
72 | 14
73 | 21
74 | 28
75 | 35
76 | 42
77 | 49
78 | 56
79 | 63
80 | 9
81 | 8
82 | 16
83 | 24
84 | 32
85 | 40
86 | 48
87 | 56
88 | 64
89 | 72
90 | 10
91 | 9
92 | 18
93 | 27
94 | 36
95 | 45
96 | 54
97 | 63
98 | 72
99 | 81
100 | 3
आप इस सूची 10000 करने के लिए विस्तार पा सकते हैं यहाँ ।
स्कोरिंग
यह कोड-गोल्फ है , इसलिए बाइट्स जीत में सबसे कम वैध कोड है। टाईब्रेकर प्रस्तुत करने के लिए जाता है जो पहले अपने अंतिम बाइट की गिनती तक पहुंच गया। विजेता को अगले सोमवार, 19 अक्टूबर को चुना जाएगा। शुभकामनाएँ!
संपादित करें: 14 बाइट्स के लिए फिर से पाइथ का उपयोग करते हुए , अपने विजेता, @isaacg को बधाई !
|*GHhG
एक बाइट बचाता है?H*GHhG
।