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

स्वैपिंग से अधिकतम संख्या


इस समस्या में, एक पॉजिटिव इंटीजर स्ट्रिंग दी गई है, हमें उस परम्यूटेशन को ढूंढना है जिसका मान k बार अंकों को स्वैप करके, अलग-अलग स्थानों पर अधिकतम हो।

हम एक अंक चुनकर और उसे उसके बाद के अंकों के साथ एक-एक करके स्वैप करके अधिकतम संख्या ढूंढकर इस समस्या को हल करेंगे। हम इस प्रक्रिया को k बार दोहराते हैं। बैकट्रैकिंग रणनीति यहां काम कर रही है क्योंकि जब हमें कोई संख्या मिलती है जो पिछले मान से अधिक नहीं होती, तो हम पुराने मान पर वापस जाते हैं और फिर से जांचते हैं।

इनपुट और आउटपुट

इनपुट: कई अंकों की एक संख्या। इनपुट है: 129814999 आउटपुट: इन अंकों को स्वैप करके अधिकतम मान। आउटपुट है: 999984211

एल्गोरिदम

maxNum(number, swaps, maxNumber)

इनपुट - स्ट्रिंग के रूप में संख्या, स्वैप की संख्या और maxNumber स्ट्रिंग

आउटपुट - सबसे बड़ा मान प्राप्त करने के लिए maxNumber को अपडेट करें

Begin 
  if swaps = 0, then 
    return 
  n := number of digits in the number 
  for i := 0 to n-2, do 
    for j := i+1 to n-1, do 
      if number[i] < number[j], then 
        exchange number[i] and number[j] 
        if number is greater than maxNumber, then 
          maxNumber := number 
        maxNum(number, swaps-1, maxNumber) 
        exchange number[i] and number[j] again for backtrack 
    done 
  done 
End

उदाहरण

#include  using namespace std; void maxNum(string str, int swaps, string &max) { if(swaps == 0) //when no swaps are left return; int n = str.length(); for (int i = 0; i < n - 1; i++) { //for every digits og given number for (int j = i + 1; j < n; j++) { if (str[i] < str[j]) { //when ith number smaller than jth number swap(str[i], str[j]); if (str.compare(max) > 0) //when current number is greater, make it maximum max = str; maxNum(str, swaps - 1, max); //go for next swaps swap(str[i], str[j]); //when it fails, reverse the swapping } } } } int main() { string str = "129814999"; int swapNumber = 4; string max = str; maxNum(str, swapNumber, max); cout <<"The given number is: " <

आउटपुट

The given number is: 129814999 The maximum number is: 999984211
  1. JavaScript Number() फंक्शन JavaScript Number() फंक्शन

    JavaScript Number() फंक्शन ऑब्जेक्ट वैल्यू को तर्क के रूप में पास करके उसके संबंधित न्यूमेरिक वैल्यू में बदल देता है।उदाहरण<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width,

  1. JavaScript में संख्या पैटर्न JavaScript में संख्या पैटर्न

    हमें एक JavaScript और HTML प्रोग्राम लिखना है जो उपयोगकर्ता को एक टेक्स्ट इनपुट और बटन प्रदान करता है। जब उपयोगकर्ता इनपुट में कोई मान दर्ज करता है, मान लीजिए 5, और बटन पर क्लिक करता है, तो हमें स्क्रीन पर निम्नलिखित पैटर्न प्रिंट करना चाहिए। (n = 5 के लिए) 01 01 02 01 02 03 01 02 03 04 01 02 03 04

  1. HTML DOM Input Number max Property - अधिकतम मान सेट/प्राप्त करें HTML DOM Input Number max Property - अधिकतम मान सेट/प्राप्त करें

    HTML DOM Input Number max Property HTML DOM input number max property HTML दस्तावेज़ में type=number वाले इनपुट फील्ड के max attribute का मान प्राप्त या संशोधित करता है। यह उपयोगकर्ता द्वारा दर्ज की जा सकने वाली अधिकतम संख्या को परिभाषित करता है। Syntax Max मान प्राप्त करना: numberInputObject.max