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

C++ प्रोग्राम: क्रमबद्ध सरणी में सभी ट्रिपलेट ज्ञात करना जो ज्यामितीय प्रगति बनाते हैं

मान लें हमारे पास विशिष्ट धनात्मक पूर्णांकों की एक क्रमबद्ध सरणी है। हमें सभी ट्रिपलेट ज्ञात करने हैं, जो पूर्णांक सामान्य अनुपात के साथ ज्यामितीय प्रगति (Geometric Progression) बनाते हैं। मान लें सरणी तत्व [1, 2, 6, 10, 18, 54] हैं, ट्रिपलेट (2, 6, 18), और (6, 18, 54) हैं, ये ज्यामितीय प्रगति बना रहे हैं।

इसे हल करने के लिए, हम दूसरे तत्व से शुरू करेंगे, और प्रत्येक तत्व को मध्य तत्व के रूप में फिक्स करेंगे, और कम और बड़े तत्वों की खोज करेंगे। मध्य तत्व arr[j] के ज्यामितीय प्रगति का मध्य होने के लिए, पिछला तत्व arr[i] और arr[k] इस तरह होंगे:

$$\frac{arr[j]}{arr[i]}=\frac{arr[k]}{arr[j]}=r$$

उदाहरण

#include <iostream>
using namespace std;

void getTriplets(int arr[], int n) {
    for (int j = 1; j < n - 1; j++) {
        int i = j - 1, k = j + 1;
        while (i >= 0 && k <= n - 1) {
            while (arr[j] % arr[i] == 0 && arr[k] % arr[j] == 0 && arr[j] / arr[i] == arr[k] / arr[j]) {
                cout << "(" << arr[i] << ", " << arr[j] << ", " << arr[k] << ")" << endl;
                k++;
                i--;
            }
            if (arr[j] % arr[i] == 0 && arr[k] % arr[j] == 0) {
                if (arr[j] / arr[i] < arr[k] / arr[j])
                    i--;
                else
                    k++;
            } else if (arr[j] % arr[i] == 0)
                k++;
            else
                i--;
        }
    }
}

int main() {
    int arr[] = {1, 2, 6, 10, 18, 54};
    int n = sizeof(arr) / sizeof(arr[0]);
    getTriplets(arr, n);
}

आउटपुट

(2, 6, 18)
(6, 18, 54)
  1. - न्यूनतम मान खोजें जिसे सभी ऐरे तत्वों को असाइन करने से ऐरे का गुणनफल अधिक हो जाए C++ में

    मान लीजिए हमारे पास n तत्वों का एक ऐरे है। दी गई ऐरे के सभी तत्वों को कुछ न्यूनतम मान x पर अपडेट करें, जैसे कि arr[i] = x। जैसे कि नए ऐरे में सभी तत्वों का गुणनफल प्रारंभिक ऐरे के सभी तत्वों के गुणनफल से सख्ती से अधिक हो, जहां i <= arr[i] <= 10^10, और 1 <= n 4 * 2 * 1 * 10 * 6 हम जानते हैं कि n तत्

  1. - C++ का उपयोग करके सरणी में ऐसा तत्व खोजें जिससे सभी तत्व विभाज्य हों

    मान लीजिए हमारे पास कुछ तत्वों के साथ एक सरणी A है। हमें A से एक ऐसा तत्व ढूंढना है जिससे सभी तत्व इससे विभाज्य हों। मान लीजिए A = [15, 21, 69, 33, 3, 72, 81] है, तो तत्व 3 होगा, क्योंकि सभी संख्याएं 3 से विभाज्य हैं। इस समस्या को हल करने के लिए, हम A में सबसे छोटी संख्या लेंगे, फिर जांचेंगे कि क्य

  1. - C++ में सरणी में उन सभी जोड़े (a, b) को खोजें जैसे कि a % b = k

    मान लीजिए हमारे पास एक सरणी A है, उस सरणी से हमें सभी जोड़े (a, b) प्राप्त करने हैं जैसे कि a%b = k। मान लीजिए सरणी A = [2, 3, 4, 5, 7], और k = 3, तो जोड़े हैं (7, 4), (3, 4), (3, 5), (3, 7)। इसे हल करने के लिए, हम सूची को पार करेंगे और जांचेंगे कि दी गई शर्त पूरी हो रही है या नहीं। उदाहरण #include