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

C++ में सरणी के GCD को k का गुणज बनाने के लिए न्यूनतम संचालन

मान लीजिए कि हमारे पास एक सरणी गिरफ्तारी और दूसरा मान k है। हमें सरणी के GCD को k के गुणज के बराबर बनाने के लिए न्यूनतम संख्या में संक्रियाओं का पता लगाना होगा। इस मामले में, ऑपरेशन मूल्य में वृद्धि या कमी कर रहा है। मान लीजिए कि सरणी {4, 5, 6} की तरह है, और k 5 है। हम 4 को 1 से बढ़ा सकते हैं और 6 को 1 से घटा सकते हैं, इसलिए यह 5 हो जाता है। यहां कई ऑपरेशन 2 हैं।

परिणाम प्राप्त करने के लिए हमें इन चरणों का पालन करना होगा -

कदम -

  • सरणी में सभी तत्वों के लिए, चरण 2 और 3 का पालन करें
  • यदि e 1 नहीं है, और e> k है, तो परिणाम को min (e mod k) और (k – e mod k) के रूप में बढ़ाएं।
  • अन्यथा, परिणाम + k – e
  • . होगा
  • वापसी का परिणाम

उदाहरण

#include <iostream>
using namespace std;
int countMinOp(int arr[], int n, int k) {
   int result = 0;
   for (int i = 0; i < n; ++i) {
      if (arr[i] != 1 && arr[i] > k) {
         result = result + min(arr[i] % k, k - arr[i] % k);
      } else {
         result = result + k - arr[i];
      }
   }
   return result;
}
int main() {
   int arr[] = { 4, 5, 6 };
   int n = sizeof(arr) / sizeof(arr[0]);
   int k = 5;
   cout << "Minimum operation required: " << countMinOp(arr, n, k);
}

आउटपुट

Minimum operation required: 2

  1. सी ++ का उपयोग करके सभी तत्वों को 0 बनाने के लिए सरणी पर संचालन की न्यूनतम संख्या।

    समस्या कथन आकार एन की एक सरणी को देखते हुए और प्रत्येक तत्व या तो 1 या 0 है। कार्य सभी तत्वों को शून्य में बदलने के लिए किए जाने वाले संचालन की न्यूनतम संख्या की गणना करना है। कोई नीचे के ऑपरेशन कर सकता है - यदि कोई तत्व 1 है, तो आप उसका मान 0 के बराबर बदल सकते हैं - यदि अगला लगातार तत्व 1 है,

  1. C++ में को-प्राइम ऐरे बनाने के लिए न्यूनतम इंसर्शन

    इस खंड में हम एक और दिलचस्प समस्या देखेंगे। मान लीजिए कि हमारे पास एन तत्वों की एक सरणी है। इस सरणी को सह-अभाज्य सरणी बनाने के लिए हमें न्यूनतम संख्या में प्रतिच्छेदन बिंदु खोजने होंगे। को-प्राइम एरे में हर दो लगातार एलीमेंट का gcd 1 होता है। हमें ऐरे को भी प्रिंट करना होता है। मान लीजिए हमारे पास

  1. सी ++ में सरणी के सभी तत्वों को समान बनाने के लिए न्यूनतम डिलीट ऑपरेशंस।

    समस्या कथन n तत्वों की एक सरणी को देखते हुए जैसे कि तत्व दोहरा सकते हैं। हम सरणी से किसी भी संख्या में तत्वों को हटा सकते हैं। कार्य इसे समान बनाने के लिए सरणी से हटाए जाने वाले तत्वों की न्यूनतम संख्या को खोजना है। arr[] = {10, 8, 10, 7, 10, -1, -4, 12} सभी सरणी तत्वों को समान बनाने के लिए हमें ह