हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता होती है जो एक संख्या में और बार-बार अपने अंक को तब तक जोड़ता है जब तक कि यह एक अंक संख्या में परिवर्तित न हो जाए।
हम इस समस्या को दो तरीकों से हल करेंगे -
विधि 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