हैप्पी नंबर
एक खुश संख्या एक संख्या है जो अंततः 1 तक पहुंच जाती है जब प्रत्येक अंक के वर्ग के योग से प्रतिस्थापित किया जाता है। जबकि इस प्रक्रिया के दौरान यदि कोई संख्या दोहराई जाती है, तो चक्र असीम रूप से चलेगा और ऐसी संख्याएं दुखी संख्याएं कहलाती हैं।
उदाहरण के लिए - 13 एक खुश संख्या है क्योंकि,
1^2 + 3^2 = 10 and, 1^2 + 0^2 = 1
दूसरी ओर, 36 एक दुखी संख्या है।
हमें एक ऐसा फ़ंक्शन लिखना है जो यह निर्धारित करने के लिए रिकर्सन का उपयोग करता है कि कोई संख्या एक खुश संख्या है या नहीं।
तो, चलिए इस फंक्शन को लिखते हैं। इस फ़ंक्शन की कुंजी यह है कि हमें उन संख्याओं का रिकॉर्ड रखना होगा जो पहले ही दिखाई दे चुकी हैं, यदि वही संख्या एक और प्रकट होती है, तो गलत हो जाती है और यदि वर्ग अंकों को 1 से जोड़ दिया जाता है, तो हम सही हो जाते हैं।
हम पहले से प्रदर्शित संख्या का ट्रैक रखने के लिए एक वस्तु का उपयोग करेंगे, हम सेटर मानचित्र का भी उपयोग कर सकते थे, लेकिन एक साधारण वस्तु हमारे लिए भी ऐसा करेगी।
ऐसा करने के लिए कोड होगा -
उदाहरण
const squareSumRecursively = (n, res = 0) => { if(n){ return squareSumRecursively(Math.floor(n/10), res+Math.pow((n%10),2)); }; return res; }; const isHappy = (num, map = {}) => { if(num !== 1){ if(map[num]){ return false; } map[num] = 1; return isHappy(squareSumRecursively(num), map); }; return true; } console.log(isHappy(36)); console.log(isHappy(13)); console.log(isHappy(36)); console.log(isHappy(23));
आउटपुट
कंसोल में आउटपुट होगा -
false true false true