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

C++ में दी गई रेंज में एलिमेंट्स के योग के साथ सम-ऐरे बनाना


एक सरणी arr[] दी गई है जिसमें केवल पूर्णांक हैं और एक विषम संख्या sum है। लक्ष्य एक सम सरणी arr_2[] बनाना है जैसे कि प्रत्येक arr_2[i] पिछले sum/2 एलिमेंट्स का योग है arr[] का + arr[i] + अगले sum/2 एलिमेंट्स arr[] के। यदि sum 1 है तो arr_2[i]=arr[i]

उदाहरण के लिए

इनपुट

arr[] = { 4, 1, 7, 5, 2, 9} sum=3

आउटपुट

Construction of sum-array with sum of elements in given range are: 5 12 13 14 16 17 17 9 3

व्याख्या

सम सरणी इस प्रकार बनाई गई है: arr_2[0]=arr[0]+arr[1] = 4+1 = 5 arr_2[1]=arr[0]+arr[1]+arr[2] = 4+1+7 = 12 arr_2[2]=arr[1]+arr[2]+arr[3] = 1+7+5 = 13 arr_2[3]=arr[2]+arr[3]+arr[4] = 7+5+2 = 14 arr_2[4]=arr[3]+arr[4]+arr[5] = 5+2+9 = 16 arr_2[5]=arr[4]+arr[5] = 2+9 = 11s

इनपुट

arr[] = { 1,2,3,4,5 } sum=5

आउटपुट

Construction of sum-array with sum of elements in given range are - 6 10 15 14 12

व्याख्या

सम सरणी इस प्रकार बनाई गई है: arr_2[0]=arr[0]+arr[1]+arr[2] = 1+2+3 = 6 arr_2[1]=arr[0]+arr[1]+arr[2]+arr[3] = 1+2+3+4= 10 arr_2[2]=arr[0]+arr[1]+arr[2]+arr[3]+arr[4] = 1+2+3+4+5 = 15 arr_2[3]=arr[1]+arr[2]+arr[3]+arr[4] = 2+3+4+5= 14 arr_2[4]=arr[2]+arr[3]+arr[4]= 3+4+5 = 12

नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण इस प्रकार है:

इस दृष्टिकोण में हम स्लाइडिंग विंडो अवधारणा का उपयोग करेंगे। पिछले विंडो योग में अगले दाहिने सबसे एलिमेंट को जोड़ें और उसमें से बाएं सबसे एलिमेंट को हटाएं।

  • एक पूर्णांक सरणी arr[] और एक मान sum इनपुट के रूप में लें।

  • फ़ंक्शन sum_array(int arr[], int size, int sum) दी गई रेंज में एलिमेंट्स के योग के साथ सम-सरणी लौटाता है।

  • प्रारंभिक गिनती को 0 के रूप में लें।

  • सम सरणी को arr_2[size] के रूप में लें।

  • temp = sum / 2 + 1 लें।

  • 0 से temp तक temp संख्या में एलिमेंट्स को गिनती में जोड़ें। और arr_2[0] को गिनती के रूप में सेट करें।

  • सम सरणी के अगले एलिमेंट्स के लिए, i=1 से i

  • temp_1 = i - (sum / 2) - 1 लें। यदि यह >=0 है तो arr[temp_1] को गिनती से घटाएं।

  • temp_2 = i + (sum / 2) लें। यदि यह < size है तो arr[temp_2] को गिनती में जोड़ें।

  • arr_2[i] = गिनती सेट करें।

  • फॉर लूप के अंत में हमारे पास arr_2[] एक सम सरणी के रूप में होगा।

  • फॉर लूप का उपयोग करके सम सरणी arr_2[] प्रिंट करें।

उदाहरण

#include <bits/stdc++.h> using namespace std; void sum_array(int arr[], int size, int sum){ int count = 0; int arr_2[size]; int temp = sum / 2 + 1; for (int i = 0; i < temp; i++){ count = count + arr[i]; } arr_2[0] = count; for (int i = 1; i < size; i++){ int temp_1 = i - (sum / 2) - 1; if (temp_1 >= 0){ count = count - arr[temp_1]; } int temp_2 = i + (sum / 2); if (temp_2 < size){ count = count + arr[temp_2]; } arr_2[i] = count; } cout<<"Construction of sum-array with sum of elements in given range are: "; for (int i = 0; i < size; i++){ cout<< arr_2[i] << " "; } } int main(){ int arr[] = { 4, 1, 7, 5, 2, 9, 6, 2, 1 }; int sum = 3; int size = sizeof(arr) / sizeof(int); sum_array(arr, size, sum); return 0; }

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा:

Construction of sum-array with sum of elements in given range are - 5 12 13 14 16 17 17 9 3

  1. - C++ में दिए गए योग वाले सभी ट्रिपलेट प्रिंट करें

    इस समस्या में, हमें अद्वितीय पूर्णांकों की एक सरणी और एक योग दिया गया है। और हमें उन ट्रिपलेट को ढूंढना है जो समान योग बना सकते हैं। समस्या को हल करने के लिए एक उदाहरण लेते हैं - इनपुट: सरणी = {0 , 2 , -1 , 1, -2} योग = 1 आउटपुट: 1 2 -2 0 2 -1 इस समस्या को हल करने के लिए, हम उन सभी ट्रिपलेट को ढूंढे

  1. - C++ में दिए गए योग वाले सभी युग्म प्रिंट करें

    इस समस्या में, हमें पूर्णांकों की एक सरणी और एक पूर्णांक योग दिया गया है और हमें उन सभी पूर्णांक युग्मों को प्रिंट करना है जिनका योग योग मान के बराबर है। समस्या को समझने के लिए एक उदाहरण लेते हैं : इनपुट - सरणी = {1, 6, -2, 3} योग = 4 आउटपुट - (1, 3) , (6, -2) यहां, हमें दिए गए योग मान वाले युग्म चा

  1. - C++ में दिए गए ऑपरेशन से ऐरे योग को अधिकतम करना

    विवरण (2 * n - 1) पूर्णांकों का एक ऐरे है। हम ऐरे में ठीक n तत्वों का चिन्ह बदल सकते हैं। दूसरे शब्दों में, हम ठीक n ऐरे तत्वों का चयन कर सकते हैं, और उनमें से प्रत्येक को -1 से गुणा कर सकते हैं। ऐरे का अधिकतम योग ज्ञात करें। उदाहरण यदि इनपुट ऐरे है {-2, 100, -3} तो हम -2 और -3 का चिन्ह बदलकर अधिक