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

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

मान लीजिए कि हमारे पास अलग-अलग सकारात्मक पूर्णांक के साथ एक क्रमबद्ध सरणी है। हमें सभी त्रिगुणों को खोजना है, जो अभिन्न सामान्य अनुपात के साथ ज्यामितीय प्रगति बनाते हैं। मान लीजिए कि सरणी तत्व [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 जैसा कि हम जानते

  1. एक सरणी तत्व खोजें जैसे कि सभी तत्व इसके द्वारा c++ . का उपयोग करके विभाज्य हैं

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

  1. एक सरणी में सभी जोड़े (ए, बी) खोजें जैसे कि सी ++ में% बी =के

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