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

जावास्क्रिप्ट में संख्या को 1 तक कम करें

<घंटा/>

समस्या

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो संख्या, संख्या को एकमात्र तर्क के रूप में लेता है।

  • हमारा कार्य केवल इन दो कार्यों को num पर कर सकता है:यदि num सम है, तो हम num को num/2 से बदल सकते हैं

  • अगर संख्या विषम है, तो हम संख्या को num + 1 या num-1 से बदल सकते हैं।

केवल इन दो ऑपरेशनों के संयोजन का उपयोग करके हमारे फ़ंक्शन को यह गणना करने की आवश्यकता है कि कितने न्यूनतम संचालन को संख्या को 1 तक लाने की आवश्यकता है। फ़ंक्शन को संचालन की न्यूनतम संख्या वापस करनी चाहिए।

उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -

const num = 7;

तब आउटपुट होना चाहिए -

const output = 4;

आउटपुट स्पष्टीकरण:

क्योंकि सबसे छोटे संभव ऑपरेशन हैं -

7 -> 8 -> 4 -> 2 -> 1
or
7 -> 6 -> 3 -> 2 -> 1

उदाहरण

इसके लिए कोड होगा -

const num = 7;
const downToOne = (num = 1) => {
   let min = Number.POSITIVE_INFINITY;
   let stack = [{ num: num, step: 0 }];
   let set = new Set();
   let next;
   let item;
   while (stack.length) {
      item = stack.shift();
      if (item.num === 1) {
         if (min > item.step) {
            min = item.step;
         }
         continue;
      }
      if (set.has(item.num) || item.step >= min) {
         continue;
      }
      set.add(item.num);
      next = item.step + 1;
      if (item.num % 2 === 0) {
         item.num /= 2;
         stack.push({ num: item.num, step: next });
      } else {
         stack.push({ num: item.num - 1, step: next });
         stack.push({ num: item.num + 1, step: next });
      }
   }
   return min;
};
console.log(downToOne(num));

आउटपुट

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

4

  1. जावास्क्रिप्ट में संख्याओं को वर्णों में बदलें

    मान लीजिए कि हमारे पास एक लॉगिन प्रणाली है जहां उपयोगकर्ताओं को विशिष्ट रूप से उनकी पहचान करने के लिए एक अद्वितीय उपयोगकर्ता आईडी प्रदान करने की आवश्यकता होती है। और स्पष्ट सुरक्षा कारणों से, हम उपयोगकर्ता आईडी को अस्पष्ट करना चाहते हैं ताकि संख्या का अनुमान लगाना काफी कठिन हो। असल में, हमें दो फंक

  1. 10 जावास्क्रिप्ट की निकटतम शक्ति के लिए नीचे की ओर गोल संख्या

    हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक संख्या लेता है। फ़ंक्शन को 10 की शक्ति वापस करनी चाहिए जो इनपुट संख्या के सबसे नजदीक है। उदाहरण के लिए - f(1) = 1 f(5) = 1 f(15) = 10 f(43) = 10 f(456) = 100 f(999) = 100 उदाहरण const num = 2355; const num1 = 346; const num2 = 678; const nearestPowerOfTe

  1. जावास्क्रिप्ट में किसी संख्या का गुणनखंडन करें

    हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो एक सकारात्मक पूर्णांक को एकमात्र तर्क के रूप में लेता है। फ़ंक्शन को उन सभी संख्याओं की एक सरणी का निर्माण और वापसी करनी चाहिए जो इनपुट संख्या को बिल्कुल विभाजित करती हैं। उदाहरण के लिए - अगर इनपुट नंबर है - const num = 12; तब आउटपुट होना चाह