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

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

आइए इस समस्या को दो प्रमुख फ़ंक्शन में तोड़ें:

  • isHarshad() → एक नंबर num लेता है और इस आधार पर बूलियन लौटाता है कि संख्या हर्षद है या नहीं।
  • harshadNum() → मुख्य फ़ंक्शन जो वास्तविक नंबर लेता है, विभिन्न बिंदुओं पर isHarshad() को कॉल करता है और स्ट्रीक की लंबाई लौटाता है।

isHarshad फ़ंक्शन कोड करना:

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

काफी सरल इटरेटिव फ़ंक्शन जो बूलियन लौटाता है।

अब आइए harshadNum() फ़ंक्शन कोड करें:

const harshadNum = (number) => {
  // यदि इनपुट हर्षद नहीं है तो -1 लौटाएं
  if(!isHarshad(number)){
    return -1;
  }
  let streak = 1, prev = number-1, next = number+1;
  // पूर्ववर्ती स्ट्रीक जांचें
  while(isHarshad(prev) && prev > 0){
    streak++;
    prev--;
  }
  // उत्तरवर्ती स्ट्रीक जांचें
  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) => {
  // यदि इनपुट हर्षद नहीं है तो -1 लौटाएं
  if(!isHarshad(number)){
    return -1;
  }
  let streak = 1, prev = number-1, next = number+1;
  // पूर्ववर्ती स्ट्रीक जांचें
  while(isHarshad(prev) && prev > 0){
    streak++;
    prev--;
  }
  // उत्तरवर्ती स्ट्रीक जांचें
  while(isHarshad(next)){
    streak++;
    next++;
  }
  return streak;
};
console.log(harshadNum(1014));

आउटपुट

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

4

  1. - JavaScript में लुकास संख्या क्रम का nवां तत्व खोजना

    लुकास संख्याएं लुकास संख्याएं एक क्रम में संख्याएं हैं जिसे इस तरह परिभाषित किया गया है - L(0) = 2 L(1) = 1 L(n) = L(n-1) + L(n-2) समस्या हमें एक JavaScript फ़ंक्शन लिखना है जो एक संख्या n लेता है और nवीं लुकास संख्या वापस करता है। उदाहरण कोड निम्न है - { if (num === 0) return 2; if

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

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

  1. - जावास्क्रिप्ट में सरणी से एकमात्र आउट-ऑफ-सीक्वेंस संख्या ढूंढना

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