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

सी ++ प्रोग्राम वजन के पैमाने पर सोने को बिना विस्फोट के लोड करने का क्रम खोजने के लिए

मान लीजिए कि हमारे पास n विशिष्ट तत्वों के साथ एक सरणी A है, और दूसरी संख्या x है। सोने के n टुकड़े हैं। ith सोने का वजन A [i] है। हम इस n पीस को वेट स्केल पर एक बार में एक पीस में रखेंगे। लेकिन पैमाने में एक असामान्य दोष है:यदि उस पर कुल भार बिल्कुल x है, तो यह फट जाएगा। हमें यह जांचना होगा कि क्या हम प्रक्रिया के दौरान पैमाने में विस्फोट किए बिना सभी n सोने के टुकड़ों को किसी क्रम में स्केल पर रख सकते हैं। अगर हम कर सकते हैं, तो उस आदेश को खोजें। अगर संभव न हो तो "IMPOSSIBLE" का निशान लगा दें।

इसलिए, यदि इनपुट ए =[1, 2, 3, 4, 8] जैसा है; x =6, तो आउटपुट [8, 1, 2, 3, 4] होगा, अन्य ऑर्डर भी मान्य हैं

कदम

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

s := 0
n := size of A
for initialize i := 0, when i < n, update (increase i by 1), do:
   s := s + A[i]
if s is same as x, then:
   return "IMPOSSIBLE"
s := 0
for initialize i := 0, when i < n, update (increase i by 1), do:
   s := s + A[i]
   if s is same as x, then:
      print A[i + 1], A[i]
      (increase i by 1)
      Ignore following part, skip to the next iteration
   print A[i]

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;

void solve(vector<int> A, int x) {
   int s = 0;
   int n = A.size();
   for (int i = 0; i < n; i++) {
      s += A[i];
   }
   if (s == x) {
      cout << "IMPOSSIBLE";
      return;
   }
   s = 0;
   for (int i = 0; i < n; i++) {
      s += A[i];
      if (s == x) {
         cout << A[i + 1] << ", " << A[i] << ", ";
         i++;
         continue;
      }
      cout << A[i] << ", ";
   }
}
int main() {
   vector<int> A = { 1, 2, 3, 4, 8 };
   int x = 6;
   solve(A, x);
}

इनपुट

{ 1, 2, 3, 4, 8 }, 6

आउटपुट

1, 2, 4, 3, 8,

  1. सी ++ प्रोग्राम जीसीडी खोजने के लिए

    दो संख्याओं का सबसे बड़ा सामान्य भाजक (GCD) उन दोनों को विभाजित करने वाली सबसे बड़ी संख्या है। उदाहरण के लिए:मान लें कि हमारे पास 45 और 27 दो संख्याएँ हैं। 45 = 5 * 3 * 3 27 = 3 * 3 * 3 तो, 45 और 27 का GCD 9 है। दो संख्याओं का GCD ज्ञात करने का कार्यक्रम इस प्रकार दिया गया है। उदाहरण #include <

  1. सी ++ प्रोग्राम फैक्टोरियल खोजने के लिए

    एक गैर-ऋणात्मक पूर्णांक n का गुणनखंड उन सभी धनात्मक पूर्णांकों का गुणनफल होता है जो n से कम या उसके बराबर होते हैं। उदाहरण के लिए:5 का भाज्य 120 है। 5! = 5 * 4 * 3 * 2 *1 5! = 120 एक पूर्णांक का भाज्य एक पुनरावर्ती कार्यक्रम या एक गैर-पुनरावर्ती कार्यक्रम का उपयोग करके पाया जा सकता है। इन दोनों का

  1. C++ में देखे गए शहरों का सही क्रम खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास प्रस्थान और आगमन हवाई अड्डों के जोड़े द्वारा दर्शाए गए एयरलाइन टिकटों की एक सूची है, जैसे [से, से], हमें यात्रा कार्यक्रम को सही क्रम में फिर से बनाना होगा। सभी टिकट केएलके से प्रस्थान करने वाले व्यक्ति के हैं। इसलिए, यात्रा कार्यक्रम JFK से शुरू होना चाहिए। तो अगर इनपुट [[एम