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

C++ में N संख्याओं द्वारा बनाए गए N/2 के योग के वर्गों के योग को कम से कम करें

समस्या कथन

n तत्वों की एक सरणी को देखते हुए। कार्य n/2 जोड़े को इस तरह से बनाना है कि n/2 जोड़े के वर्गों का योग न्यूनतम हो।

उदाहरण

यदि दिया गया सरणी है -

arr[] = {5, 10, 7, 4}
then minimum sum of squares is 340 if we create pairs as (4, 10) and ( 5, 7)

एल्गोरिदम

1. Sort the array
2. Take two variables which point to start and end index of an array
3. Calulate sum as follows:
   sum = arr[start] + arr[end];
   sum = sum * sum;
4. Repeate this procedure till start < end and increment minSum as follows:
   While (start < end) {
      sum = arr[start] + arr[end];
      sum = sum * sum;
      minSum += sum;
      ++start;
      --end;
   }

उदाहरण

#include <iostream>
#include <algorithm>
#define SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
using namespace std;
int getMinSquareSum(int *arr, int n) {
   sort(arr, arr + n);
   int minSum = 0;
   int start = 0;
   int end = n - 1;
   while (start < end) {
      int sum = arr[start] + arr[end];
      sum *= sum;
      minSum += sum;
      ++start;
      --end;
   }
   return minSum;
}
int main() {
   int arr[] = {5, 10, 7, 4};
   int res = getMinSquareSum(arr, SIZE(arr));
   cout << "Minimum square sum: " << res << "\n";
   return 0;
}

आउटपुट

जब आप उपरोक्त प्रोग्राम को संकलित और निष्पादित करते हैं। यह निम्नलिखित आउटपुट उत्पन्न करता है -

Minimum square sum: 340

  1. सी ++ प्रोग्राम पहले एन प्राकृतिक संख्याओं के वर्गों के योग के लिए?

    इस समस्या में हम देखेंगे कि हम पहली n प्राकृत संख्याओं के वर्गों का योग कैसे प्राप्त कर सकते हैं। यहां हम लूप के लिए एक का उपयोग कर रहे हैं, जो 1 से n तक चलता है। प्रत्येक चरण में हम पद के वर्ग की गणना कर रहे हैं और फिर इसे योग में जोड़ रहे हैं। इस प्रोग्राम को पूरा होने में O(n) समय लगता है। लेकिन

  1. श्रृंखला 1/1 का योग खोजने के लिए जावा प्रोग्राम! + 2/2! + 3/3! + 4/4! +…….+ एन/एन!

    श्रृंखला का योग ज्ञात करने के लिए जावा प्रोग्राम निम्नलिखित है - 1/1! + 2/2! + 3/3! + 4/4! +…….+ n/n! उदाहरण import java.io.*; import java.lang.*; public class Demo{    public static double pattern_sum(double val){       double residual = 0, factorial_val = 1;

  1. एक श्रृंखला 1/1 का योग खोजने के लिए पायथन प्रोग्राम! + 2/2! + 3/3! + 4/4! +…….+ एन/एन!

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन −एक पूर्णांक इनपुट n को देखते हुए, हमें एक श्रृंखला 1/1 का योग ज्ञात करना होगा! + 2/2! + 3/3! + 4/4! +…….+ एन/एन! यहां हम लूप के लिए लागू कर रहे हैं, इसलिए, हमें समय जटिलता के रूप में O(n) मिलता