Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

हर्षद संख्या का पता लगाना जावास्क्रिप्ट

<घंटा/>

हर्षद संख्याएँ वे संख्याएँ होती हैं जो अपने अंकों के योग से पूर्णतः विभाजित होती हैं। संख्या 126 की तरह, यह 1+2+6 =9 से पूर्णतः विभाजित होती है।

  • सभी सिंगल डिजिट नंबर हर्षद नंबर होते हैं।

  • हर्षद संख्याएं अक्सर [1,2,3,4,5,6,7,8,9,10],[110,111,112], [1010, 1011, 1012] जैसे क्रमागत समूहों में मौजूद होती हैं।

हमारा काम एक फ़ंक्शन लिखना है जो एक संख्या लेता है क्योंकि इनपुट जांचता है कि यह एक कठोर संख्या है या नहीं, यदि नहीं तो -1 लौटाता है अन्यथा यह लगातारहर्षद क्लस्टर की लकीर की लंबाई देता है।

उदाहरण के लिए -

harshadNum(1014) = harshadNum(1015) = harshadNum(1016) = harshadNum(1017) = 4
harshadNum(1) = 10
harshadNum(12) = 1
harshadNum(23) = -1

आइए इस समस्या को दो प्रमुख कार्यों में विभाजित करें,

  • इसहर्षद () → एक संख्या लेता है और एक बूलियन देता है जो इस पर निर्भर करता है कि संख्या हर्षद है या नहीं।

  • हर्षदनम () → मुख्य कार्य जो वास्तविक संख्या लेता है, विभिन्न बिंदुओं पर इसहर्षद () को कॉल करता है और स्ट्रीक की लंबाई लौटाता है।

इसहर्षद फ़ंक्शन को कोड करना () -

const isHarshad = (num) => {
   let sum = 0, temp = num;
   while(temp){
      sum += temp % 10;
      temp = Math.floor(temp/10);
   }
   return num % sum === 0;
}

एक बूलियन लौटाने वाला बहुत ही सरल पुनरावृत्तीय कार्य

अब हम हरशदनम () फ़ंक्शन को कोड करते हैं -

const harshadNum = (number) => {
   //if the input is not harshad return -1
   if(!isHarshad(number)){
      return -1;
   }
   let streak = 1, prev = number-1, next = number+1;
   //check preceding streak
   while(isHarshad(prev) && prev > 0){
      streak++;
      prev--;
   }
   //check succeeding streak
   while(isHarshad(next)){
      streak++;
      next++;
   }
   return streak;
};
console.log(harshadNum(1014));

उपरोक्त कोड को समझना -

  • जांचें कि इनपुट हर्षद है या नहीं, यदि फ़ंक्शन को रोकें और -1 वापस करें;

  • एक लूप को पीछे की ओर चलाएं, एक आगे की ओर, जबकि हमें कठोर संख्याएँ मिलती रहती हैं, साथ ही साथ स्ट्रीक को अपडेट करते रहते हैं

  • अंत में स्ट्रीक लौटाएं

पूरा कोड निम्नलिखित है -

उदाहरण

const isHarshad = (num) => {
   let sum = 0, temp = num;
   while(temp){
      sum += temp % 10;
      temp = Math.floor(temp/10);
   }
   return num % sum === 0;
}
const harshadNum = (number) => {
   //if the input is not harshad return -1
   if(!isHarshad(number)){
      return -1;
   }
   let streak = 1, prev = number-1, next = number+1;
   //check preceding streak
   while(isHarshad(prev) && prev > 0){
      streak++;
      prev--;
   }
   //check succeeding streak
   while(isHarshad(next)){
      streak++;
      next++;
   }
   return streak;
};
console.log(harshadNum(1014));

आउटपुट

कंसोल में इस कोड का आउटपुट होगा -

4

  1. जावास्क्रिप्ट में लुकास संख्या अनुक्रम का nवां तत्व ढूँढना

    लुकास नंबर लुकास संख्याएं इस तरह परिभाषित अनुक्रम में संख्याएं हैं - L(0) = 2 L(1) = 1 L(n) = L(n-1) + L(n-2) समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक संख्या n लेता है और nth लुकास नंबर लौटाता है। उदाहरण निम्नलिखित कोड है - const num = 21; const lucas = (num = 1) => {    i

  1. जावास्क्रिप्ट में एक सरणी में पहली गैर-लगातार संख्या ढूँढना

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो संख्याओं की एक सरणी लेता है। हमारे फ़ंक्शन को उस पहले तत्व को सरणी से वापस करना चाहिए जो इसके पिछले तत्व का प्राकृतिक उत्तराधिकारी नहीं है। इसका मतलब है कि हमें उस तत्व को वापस करना चाहिए जो इसके पिछले तत्व को +1 नहीं करता है, क्योंकि सरणी में कम से

  1. जावास्क्रिप्ट का उपयोग करके किसी सरणी से केवल अनुक्रम संख्या का पता लगाना

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो संख्याओं की एक सरणी लेता है। सरणी को आरोही/बढ़ते क्रम में क्रमबद्ध किया गया है और सरणी में केवल एक तत्व क्रम से बाहर है। हमारे फ़ंक्शन को उस तत्व को ढूंढना और वापस करना चाहिए। उदाहरण निम्नलिखित कोड है - const arr = [1, 2, 3, 4, 17, 5, 6, 7, 8]; con