की प्रक्रिया पर विचार करें:
एक गैर-नकारात्मक पूर्णांक N.
उदा27
।इसे पूर्णांकों में विभाजित करना
N - floor(N/2)
औरfloor(N/2)
(एक 'बड़ा' और 'छोटा' आधा) और उन्हें उसी क्रम में लिखना।
जैसे27
बन जाता है14 13
।पूर्णांक में नए, बहुत बड़े पूर्णांक में शामिल होने के लिए स्थान को हटाना।
जैसे14 13
बन जाता है1413
।बार-बार चरण 2 और 3 कुछ वांछित संख्या को दोहराते हैं।
जैसे1413
→ →707 706
→707706
→353853 353853
→353853353853
→…
यह चुनौती बिल्कुल ऐसा करने के बारे में है, लेकिन हमेशा बेस 10 में नहीं।
चुनौती
एक प्रोग्राम लिखें जो तीन संख्याओं में लेता है, B, N और S:
B, 2 से 10 तक का पूर्णांक है जो N (बाइनरी से दशमलव) का आधार है।
एन-बंटवारे को फिर से लागू करने के लिए गैर-नकारात्मक पूर्णांक है। उपयोगकर्ता इनपुट को आसान बनाने के लिए, इसे आधार बी में एक स्ट्रिंग के रूप में दिया जाता है , पूर्णांक नहीं।
एस एक गैर-नकारात्मक पूर्णांक है जो बंटवारे-फिर से जुड़ने की प्रक्रिया को दोहराने के लिए कई बार है।
कार्यक्रम का आउटपुट एस स्प्लिट-जॉइन प्रक्रियाओं के बाद बेस बी में एन का स्ट्रिंग प्रतिनिधित्व है।
जब एस होता है 0
, तो कोई विभाजन नहीं किया जाता है, इसलिए आउटपुट हमेशा एन होता है।
जब एन होता है 0
, तो सभी विभाजन का रूप होता है 0 0
और 0
फिर से कम हो जाता है, इसलिए आउटपुट हमेशा होता है 0
।
उदाहरण
B = 10, N = 27, S = 1
→1413
B = 10, N = 27, S = 2
→707706
B = 9, N = 27, S = 1
→1413
B = 9, N = 27, S = 2
→652651
B = anything, N = anything, S = 0
→N
B = anything, N = 0, S = anything
→0
N = के लिए सभी B के लिए तालिका 1
= 0
से 7
:
B S=0 S=1 S=2 S=3 S=4 S=5 S=6 S=7
2 1 10 11 101 1110 111111 10000011111 10000100001000001111
3 1 10 21 1110 202201 101101101100 1201201201212012012011 212100212102121002121212100212102121002120
4 1 10 22 1111 223222 111311111311 2232222232322322222322 11131111131311311111311113111113131131111131
5 1 10 32 1413 432431 213441213440 104220331443104220331442 2433241322130211014044424332413221302110140443
6 1 10 33 1514 535535 245550245545 122553122553122553122552 4125434125434125434125441254341254341254341254
7 1 10 43 2221 11111110 40404044040403 2020202202020220202022020201 10101011010101101010110101011010101101010110101011010100
8 1 10 44 2222 11111111 44444454444444 2222222622222222222226222222 11111113111111111111131111111111111311111111111113111111
9 1 10 54 2726 13581357 62851746285173 3142536758708231425367587081 15212633743485606571782880411521263374348560657178288040
10 1 10 55 2827 14141413 70707077070706 3535353853535335353538535353 17676769267676676767692676771767676926767667676769267676
एस = के लिए यादृच्छिक एन के साथ सभी बी के लिए तालिका 0
करने के लिए 3
:
B S=0 S=1 S=2 S=3
2 11011 11101101 11101111110110 11101111110111110111111011
3 2210 11021101 20102012010200 1001212100121210012121001211
4 1113 230223 112112112111 2302302302323023023022
5 101 2323 11341134 31430423143042
6 120 4040 20202020 1010101010101010
7 134 5252 24612461 1230456412304564
8 22 1111 445444 222622222622
9 4 22 1111 505505
10 92 4646 23232323 1161616211616161
विवरण
- स्टड या कमांड लाइन के माध्यम से इनपुट लें। स्टडआउट के लिए आउटपुट।
- एक कार्यक्रम के बजाय, आप एक फ़ंक्शन लिख सकते हैं जो B, N, और S लेता है और परिणाम को सामान्य रूप से प्रिंट करता है या इसे वापस करता है (एक स्ट्रिंग के रूप में)।
- B, N, और S को किसी भी क्रम में लिया जा सकता है।
- वे सभी इनपुट जो आउटपुट उत्पन्न करते हैं जिनके दशमलव मान 2 32 से कम हैं, उन्हें काम करना चाहिए।
- सामान्य तरीके से एन का प्रतिनिधित्व किया जाता है। यानी सबसे महत्वपूर्ण अंक पहले और शून्य में सिवाय किसी अग्रणी शून्य के जो लिखा गया है
0
। (00
इसके बजाय आउटपुट0
अमान्य है) - बाइट्स में सबसे छोटा कोड जीतता है।
Iff आप मेरी चुनौतियों का आनंद लें, ब्लॉक बिल्डिंग बॉट फ्लक्स देने पर विचार करें ! कुछ मोहब्बत :)