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

C++ प्रोग्राम: दी गई घातों वाले वजन का उपयोग करके पैन को संतुलित करना

कथन - किसी संख्या की घात वाले दिए गए वजन का उपयोग करके पैन को संतुलित करना।

विवरण - इस समस्या में हमें एक पैन आधारित तौल मशीन दी गई है। हमें एक वजन T और कुछ अन्य वजन दिए गए हैं जिनके मान किसी संख्या a की घात हैं। हमें दिए गए वजन का उपयोग करके पैन को संतुलित करना है।

अब, इस आधार पर हमारे पास यह समीकरण है:

T + (a की कुछ घात) = (a की कुछ अन्य घात)

अब, हमें याद रखना चाहिए कि किसी घात मान के अनुरूप ठीक एक वजन है।

उदाहरण,

T = 12 : a = 4

नीचे दिए गए मानों का उपयोग करके, हम वजन को इस प्रकार संतुलित कर सकते हैं:

12 + 4 = 16

अब, इस समस्या को हल करने के लिए हमें T को a की घात में प्रस्तुत करने की आवश्यकता है। इसके लिए हम T का आधार 10 से a में बदल देंगे।

केस 1 - आधार बदलने पर, यदि प्रतिनिधित्व में केवल 1 और 0 हैं। तो 1 के वजन का उपयोग करके T का मान योजक रूप से बनाया जा सकता है।

एक उदाहरण लेते हैं:

T = 10 : a = 3,

10 का आधार 3 में बदलने पर मान 101 हो जाता है।

तो 30 और 32 (1 + 9) = 10 का उपयोग करके बनाया जाएगा।

केस 2 - आधार बदलने पर, यदि प्रतिनिधित्व में 1 और 0 के अलावा अन्य मान थे, तो संतुलन के लिए कुछ और ऑपरेशन करने की आवश्यकता है। यहां, समाधान के लिए अनिवार्य शर्त यह है कि आधार रूपांतरण में अंक मान (a - 1) होना चाहिए। इस मामले में, हम मान की घात को T की तरफ स्थानांतरित करेंगे। और आधार प्रतिनिधित्व में संख्या को 1 से बढ़ाएंगे।

एक उदाहरण लेते हैं:

T = 7 : a = 3

7 का आधार 3 में बदलने पर हमें 021 मिलेगा।

31 को T की तरफ स्थानांतरित करके और दूसरी तरफ 1 बढ़ाकर। हमें संख्या = 10 मिलती है जिसे 101 के रूप में दर्शाया जाता है यानी (9 + 1)। जिसे संतुलित किया जा सकता है।

उपरोक्त मामलों के आधार पर हम इस समस्या को हल करने के लिए एक प्रोग्राम बनाएंगे।

उदाहरण

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

bool isBalancePossible(int T, int a) {
    vector baseForm;
    while (T) {
        baseForm.push_back(T % a);
        T /= a;
    }
    baseForm.push_back(0);
    for (int i = 0; i < baseForm.size(); i++) {
        if (baseForm[i] != 0 && baseForm[i] != 1 &&
            baseForm[i] != (a - 1) && baseForm[i] != a)
            return false;
        if (baseForm[i] == a || baseForm[i] == (a - 1))
            baseForm[i + 1] += 1;
    }
    return true;
}

int main() {
    int T = 21;
    int a = 4;
    if (isBalancePossible(T, a))
        cout << "Balance is possible" << endl;
    else
        cout << "Balance is not possible" << endl;
    return 0;
}

आउटपुट

Balance is possible
  1. - C++ प्रोग्राम दी गई संख्या के अंकों का योग करने के लिए

    C++ भाषा में अंकों का योग गणना करने का एक उदाहरण निम्नलिखिक है, उदाहरण #include<iostream> using namespace std; int main() {    int x, s = 0;    cout << "संख्या दर्ज करें: ";    cin >> x;    while (x != 0) {       s =

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

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

  1. - C++ में इटरेशन का उपयोग करके किसी संख्या का फैक्टोरियल खोजने का प्रोग्राम

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