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

k . से विभाज्य योग वाले सभी उप-सरणी गिनें

इस ट्यूटोरियल में, हम k से विभाज्य योग वाले उप-सरणी की संख्या को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे।

इसके लिए हमें एक सरणी और एक मान k प्रदान किया जाएगा। हमारा कार्य उन उप सरणियों की संख्या ज्ञात करना है जिनका योग दिए गए मान k के बराबर है।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
//counting subarrays with k sum
int count_subarray(int arr[], int n, int k){
   int mod[k];
   memset(mod, 0, sizeof(mod));
   int cumSum = 0;
   for (int i = 0; i < n; i++) {
      cumSum += arr[i];
      //taking modulus to get positive sum
      mod[((cumSum % k) + k) % k]++;
   }
   int result = 0;
   for (int i = 0; i < k; i++)
      if (mod[i] > 1)
         result += (mod[i] * (mod[i] - 1)) / 2;
   result += mod[0];
   return result;
}
int main(){
   int arr[] = { 4, 5, 0, -2, -3, 1 };
   int k = 5;
   int n = sizeof(arr) / sizeof(arr[0]);
   cout << count_subarray(arr, n, k) << endl;
   int arr1[] = { 4, 5, 0, -12, -23, 1 };
   nt k1 = 5;
   int n1 = sizeof(arr1) / sizeof(arr1[0]);
   cout << count_subarray(arr1, n1, k1) << endl;
   return 0;
}

आउटपुट

7
7

  1. सभी पैलिंड्रोम की गणना करें जो C++ में एक पैलिंड्रोम का वर्ग है

    इस ट्यूटोरियल में, हम पैलिंड्रोम की संख्या ज्ञात करने के लिए एक प्रोग्राम पर चर्चा करेंगे जो एक पैलिंड्रोम के वर्ग हैं। इसके लिए हमें दो मान L और R प्रदान किए जाएंगे। हमारा कार्य दी गई श्रेणी में सुपर पैलिंड्रोम की संख्या ज्ञात करना है। एक सुपर पैलिंड्रोम वह होता है जिसमें संख्या और उसका वर्ग दोनों

  1. C++ में सभी बढ़ते क्रमों की गणना करें

    इस ट्यूटोरियल में, हम बढ़ते क्रमों की संख्या ज्ञात करने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें 0 से 9 अंकों वाली एक सरणी प्रदान की जाएगी। हमारा कार्य सरणी में मौजूद सभी अनुक्रमों को इस तरह से गिनना है कि अगला तत्व पिछले तत्व से बड़ा हो। उदाहरण #include<bits/stdc++.h> using namespa

  1. C++ में सभी उप-अनुक्रमों के योग का योग ज्ञात कीजिए

    मान लें कि हमारे पास n तत्वों के साथ एक सरणी A है। हमें सरणी के सभी उपसमुच्चय के योग का कुल योग ज्ञात करना है। तो अगर सरणी A =[5, 6, 8] की तरह है, तो यह − . जैसा होगा सबसेट योग 5 5 6 6 8 8 5,6 11 6,8 14 5,8 13 5,6,8 19 कुल योग 76 चूंकि सरणी में n तत्व हैं, तो हमारे पास 2n उपसमुच्चय (खाली