संख्या 1 से शुरू करके और बार-बार या तो 5 जोड़कर या 3 से गुणा करके, अनंत संख्या में नई संख्याएँ उत्पन्न की जा सकती हैं। हमें एक फ़ंक्शन लिखने की आवश्यकता होती है, जो एक संख्या दी गई है, ऐसे जोड़ और गुणा के अनुक्रम को खोजने का प्रयास करता है जो उस संख्या को उत्पन्न करता है। और इस तथ्य के आधार पर एक बूलियन देता है कि ऐसा कोई अनुक्रम मौजूद है या नहीं
उदाहरण के लिए,
संख्या 13 तक पहले 3 से गुणा करके और फिर 5 को दो बार जोड़कर पहुँचा जा सकता है, इसलिए फलन 13 के लिए सही लौटना चाहिए। जबकि संख्या 15 तक बिल्कुल भी नहीं पहुँचा जा सकता है, इसलिए फलन 15 के लिए गलत लौटना चाहिए।
दृष्टिकोण
हम एक पुनरावर्ती दृष्टिकोण का उपयोग करेंगे, जहां हम बार-बार उन सभी संभावनाओं का प्रयास करते हैं जो वांछित समाधान की ओर ले जाती हैं। इस दृष्टिकोण के लिए कोड होगा -
उदाहरण
const sequenceExists = (num, curr = 1) => { if(curr > num){ return false; }; if(curr === num){ return true; }; return sequenceExists(num, curr+5) || sequenceExists(num, curr*3); }; console.log(sequenceExists(18)); console.log(sequenceExists(15)); console.log(sequenceExists(32)); console.log(sequenceExists(167)); console.log(sequenceExists(17)); console.log(sequenceExists(1119));
आउटपुट
कंसोल में आउटपुट होगा -
true false true true false true