हमें एक JavaScript फ़ंक्शन लिखना है जो एक संख्या लेता है और बार-बार उसके अंकों का योग करता है जब तक कि यह एक अंक की संख्या में परिवर्तित न हो जाए।
हम इस समस्या को दो विधियों से हल करेंगे -
विधि 1: लूप्स का उपयोग करना
यह समाधान संख्या के अंकों को रीकर्सिवली जोड़ने के लिए व्हाइल लूप्स का उपयोग करता है।
उदाहरण
const num = 123456; const addDigits = (num = 1) => { let sum = num; while(sum % 10 !== sum){ let sum1 = 0; while(sum > 0){ sum1 += sum % 10; sum = Math.floor(sum / 10); } sum = sum1; }; return sum; }; console.log(addDigits(num));विधि 2: कॉन्स्टेंट टाइम सॉल्यूशन का उपयोग करना (O(1) समय जटिलता)
यह समाधान गणित के कन्वर्जेंस फॉर्मूला का उपयोग करता है, और पाठकों को इस फॉर्मूला का पता लगाने की सलाह दी जाती है ताकि इस समाधान की बेहतर समझ हो सके।
उदाहरण
const num = 123456; const addDigits = (num = 1) => { let predicate = (num - 1) % 9; return ++predicate; }; console.log(addDigits(num));आउटपुट
दोनों विधियों के लिए कंसोल में आउटपुट होगा -
3