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

वजन स्केल पर सोने के टुकड़ों को बिना फटे लोड करने का क्रम ढूंढने के लिए C++ प्रोग्राम


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

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

चरण

इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:

s := 0 n := A का आकार i := 0 से n-1 तक, करें: s := s + A[i] यदि s, x के बराबर है, तो: "IMPOSSIBLE" वापस करें s := 0 i := 0 से n-1 तक, करें: s := s + A[i] यदि s, x के बराबर है, तो: A[i + 1], A[i] प्रिंट करें i बढ़ाएं अगले पुनरावृत्ति पर जाएं 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. - C++ प्रोग्राम: GCD (महत्तम समापवर्तक) खोजें

    परिचयदो संख्याओं का महत्तम समापवर्तक (GCD) वह सबसे बड़ी संख्या है जो दोनों को विभाजित करती है। उदाहरण के लिए: मान लें हमारे पास दो संख्याएं हैं 45 और 27। 45 = 5 * 3 * 3 27 = 3 * 3 * 3 इसलिए, 45 और 27 का GCD 9 है। उदाहरण 1 (यूक्लिडियन एल्गोरिदम)#include <iostream> using namespace std; int gcd(

  1. - C++ प्रोग्राम: फैक्टोरियल खोजें

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

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

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