मान लीजिए निम्न स्थिति -
प्रारंभ में नोटपैड पर केवल एक वर्ण 'ए' मौजूद होता है। हम प्रत्येक चरण के लिए इस नोटपैड पर दो ऑपरेशन कर सकते हैं -
-
सभी को कॉपी करें - हम नोटपैड पर मौजूद सभी वर्णों को कॉपी कर सकते हैं (आंशिक कॉपी की अनुमति नहीं है)।
-
चिपकाएं - हम उन पात्रों को पेस्ट कर सकते हैं जिन्हें पिछली बार कॉपी किया गया था।
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो एक संख्या लेता है, चलो इसे num को एकमात्र तर्क के रूप में कहते हैं। हमारे फ़ंक्शन को 'ए' अंक बार प्रिंट करने के लिए आवश्यक चरणों की न्यूनतम संख्या (सभी कॉपी या पेस्ट) की गणना करने और वापस करने की आवश्यकता है।
उदाहरण के लिए -
अगर इनपुट नंबर है -
const num = 3;
तब आउटपुट होना चाहिए -
const output = 3;
क्योंकि, चरण हैं -
-
सभी को कॉपी करें (परिणाम:'ए')
-
सभी पेस्ट करें (परिणाम:'एए')
-
सभी पेस्ट करें (परिणाम:'एएए')
उदाहरण
इसके लिए कोड होगा -
const num = 3; const minimumSteps = (num = 1) => { let [curr, copy, steps] = [1, 0, 0]; while(curr != num){ if((copy < curr) && ((num - curr) % curr) == 0) { copy = curr; }else{ curr += copy; }; steps += 1; }; return steps; }; console.log(minimumSteps(num));
आउटपुट
और कंसोल में आउटपुट होगा -
3