अच्छा आधार
एक पूर्णांक संख्या के लिए, हम k (k>=2) को संख्या का एक अच्छा आधार कहते हैं, यदि संख्या आधार k के सभी अंक 1 हैं।
उदाहरण के लिए:13 आधार 3 111 है, इसलिए संख्या के लिए 3 एक अच्छा आधार है =13
समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो स्ट्रिंग स्ट्र लेता है जो एक संख्या को एकमात्र तर्क के रूप में दर्शाता है। फ़ंक्शन को सबसे छोटी संभव संख्या का स्ट्रिंग प्रतिनिधित्व वापस करना चाहिए जो str के लिए एक अच्छा आधार है।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const str ="4681";
तब आउटपुट होना चाहिए -
कॉन्स्ट आउटपुट ="8";
आउटपुट स्पष्टीकरण:
क्योंकि 4681 आधार 8 11111 है
उदाहरण
इसके लिए कोड होगा -
const str ="4681";const smallGoodBase =(n ='1') => {const N =BigInt(n), bigint2 =BigInt(2), bigint1 =BigInt(1), bigint0 =BigInt(0 ) चलो maxLen =countLength(N, bigint2)//अधिकतम maxLen 1s const findInHalf =(लंबाई, छोटा =बड़ा =बड़ा =एन) => {अगर (छोटा> बड़ा) {वापसी [गलत]; }; अगर (छोटा ==बड़ा) {वापसी [valueOf1s (छोटा, लंबाई) ==एन, छोटा]}; चलो मध्य =(छोटा + बड़ा) / bigint2; चलो वैल =valueOf1s (मध्य, लंबाई); अगर (वैल ==एन) {वापसी [सच, मध्य]; }; अगर (वैल> एन) {वापसी findInHalf (लंबाई, छोटा, मध्य-बिगिंट 1); }; वापसी findInHalf (लंबाई, मध्य + bigint1, बड़ा); }; के लिए (लंबाई =अधिकतम लेन; लंबाई> 0; लंबाई--) {चलो [पाया, आधार] =findInHalf (लंबाई); अगर (मिला) {वापसी '' + आधार; } }; वापसी '' + (एन -1); फ़ंक्शन valueOf1s (आधार, लंबाईOf1s) { t =bigint1 के लिए (चलो i =1; ibigint0) { t /=बेस लेन++ } रिटर्न लेन }};console.log(smallestGoodBase(str));
आउटपुट
और कंसोल में आउटपुट होगा -
<पूर्व>8पूर्व>