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

'k' को ऐसे खोजना कि प्रत्येक सरणी तत्व के साथ इसका मापांक C++ में समान हो

इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो एक संख्या को इस तरह ढूंढता है कि प्रत्येक सरणी तत्व के साथ इसका मॉड्यूलस समान हो। आइए एक उदाहरण देखें।

इनपुट - गिरफ्तारी ={10, 4, 2}

आउटपुट - 1 2

अगर दो नंबर हैं x, y और x> y , मान लें कि x - y =d.

फिर x =y + d

मान लें कि हमारे पास एक संख्या है k जैसे कि x%k =y%k। मॉड्यूलो लागू करें k उपरोक्त समीकरण के लिए और d . का मान ज्ञात करें ।

x%k = (y+d)%k
y%k = y%k +d%k
d%k = 0

उपरोक्त गणना से, यदि संख्या k x . के बीच के अंतर का भाजक है और y . तब यह संख्याओं का भाजक होगा x और y

आइए समान अवधारणा को तत्वों की सरणी पर लागू करें। और k का मान ज्ञात कीजिए। समस्या को हल करने के लिए कदम देखें।

  • संख्याओं के साथ सरणी प्रारंभ करें

  • यहां, d सरणी तत्वों के अधिकतम और न्यूनतम मानों के बीच का अंतर होगा।

  • सॉर्ट विधि का उपयोग करके सरणी के मानों को क्रमबद्ध करें।

  • अंतिम और पहली संख्याओं के बीच का अंतर ज्ञात कीजिए।

  • यदि अंतर शून्य है, तो सभी संख्याएँ समान हैं। फिर किसी भी संख्या वाले मॉड्यूल का परिणाम वही परिणाम देता है।

  • नहीं तो d . के भाजक का पता लगाएं . और उन्हें स्टोर करें।

  • सभी भाजक पर पुनरावृति करें और वह संख्या ज्ञात करें जिसका सभी सरणी तत्वों के साथ मॉड्यूल समान है।

उदाहरण

आइए कोड देखें।

#include <bits/stdc++.h>
using namespace std;
void findNumbers(int arr[], int n) {
   sort(arr, arr + n);
   int d = arr[n - 1] - arr[0];
   // check whether all elements are same or not
   if (d == 0) {
      cout << "Infinite number of k's";
      return;
   }
   // finding the divisors of d
   vector <int> v;
   for (int i = 1; i * i <= d; i++) {
      if (d % i == 0) {
         v.push_back(i);
         if (i != d / i) {
            v.push_back(d / i);
         }
      }
   }
   // findind the k's
   for (int i = 0; i < v.size(); i++) {
      int temp = arr[0] % v[i];
      int j;
      for (j = 1; j < n; j++) {
         if (arr[j] % v[i] != temp) {
            break;
         }
      }
      if (j == n)
         cout << v[i] << " ";
      }
      cout << endl;
   }
   int main() {
      int arr[] = {10, 4, 2};
      findNumbers(arr, 3);
   return 0;
}

आउटपुट

यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।

1 2

निष्कर्ष

यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उनका टिप्पणी अनुभाग में उल्लेख करें।


  1. C++ में काउंट डिरेंजमेंट (क्रमपरिवर्तन जैसे कि कोई तत्व अपनी मूल स्थिति में प्रकट नहीं होता है)

    डिरेंजमेंट एन नंबरों का क्रमचय है जैसे कि मूल स्थिति में कोई संख्या दिखाई नहीं देती है। उदाहरण के लिए { 1,2,3 } का एक संभावित विचलन { 2,1,3 } है। इसमें कोई तत्व अपनी मूल स्थिति में नहीं है। यहाँ लक्ष्य N संख्याओं के लिए संभावित विचलनों की गणना करना है। हम इसे एक पुनरावर्ती समाधान का उपयोग करके करें

  1. सी ++ में पूर्ण अंतर के न्यूनतम योग के साथ ऐरे तत्व?

    यह कार्यक्रम सरणी के न्यूनतम पूर्ण अंतर को खोजने के लिए है, क्योंकि हमारे पास एक सरणी है जिसमें विशिष्ट तत्व हैं। इस अवधारणा को बेहतर ढंग से सीखने के लिए आवश्यक चीजों को फिर से ब्रश करें, सरणी समान डेटा प्रकार के तत्वों का एक कंटेनर है। सरणी की लंबाई को पूर्वनिर्धारित करने की आवश्यकता है। पूर्ण अं

  1. सी ++ प्रोग्राम 'के' को खोजने के लिए ऐसा है कि प्रत्येक सरणी तत्व के साथ इसका मॉड्यूलस समान है

    इस लेख में, हम एक पूर्णांक k को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे, जैसे कि किसी दिए गए सरणी के प्रत्येक तत्व के साथ इसका मापांक समान हो। उदाहरण के लिए, मान लें कि हमें एक सरणी दी गई है, arr = {12, 22, 32} तब हमारे पास k =1, 2, 5, 10 का आउटपुट मान होता है। y) में दो मानों का मामला लें। तब ह