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

श्रृंखला का योग Kn + ( K(n-1) * (K-1)1 ) + ( K(n-2) * (K-1)2 ) + ... (K-1)n C++ में

समस्या में, हम श्रृंखला K^n + (K^(n-1) * (K-1)^1 ) + ( K^(n-2) * (K-1) के दो नंबर k और n जीनन हैं )^2) + ... (के-1)^एन। हमारा कार्य श्रृंखला का योग ज्ञात करने के लिए एक प्रोग्राम बनाना है।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

Input: n = 3, k = 4
Output: 175
Explanation: Sum of the series is
= 4^3 + ( (4^2)*(3^1) ) + ( (4^1)*(3^2) ) + ( (4^0)*(3^3) )
= 64 + 48 + 36 + 27 = 175

समस्या को हल करने का एक आसान तरीका, लूप के लिए उपयोग कर रहा है। श्रृंखला के प्रत्येक पद को खोजें और योग में मान जोड़ें।

एल्गोरिदम

initialise sum = 0;
Step 1: for i -> 0 to n.
Step 1.1: update sum: sum += pow(k, n-i) * pow(k, i)
Step 2: return sum.

उदाहरण

हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम,

#include <iostream>
#include <math.h>
using namespace std;
int calcSeriesSum(int k, int n) {
   int sum = 0;
   for (int i = 0; i <= n; i++) {
      int p = pow(k, n-i) * pow((k-1), i);
      sum = sum + p;
   }
   return sum;
}
int main() {
   int n = 4;
   int K = 2;
   cout<<"Sum of the series is "<<calcSeriesSum(K, n);
}

आउटपुट

Sum of the series is 31

यह समाधान कुशल नहीं है और क्रम n का समय लेता है।

एक कुशल समाधान श्रृंखला के योग के लिए सामान्य सूत्र खोजना होगा।

The series K^n + ( K^(n-1) * (K-1)^1 ) + ( K^(n-2) * (K-1)^2 ) + ... (K-1)^n
Forms a geometric progression. The common ration of this progression is (k-1)/k and the first term is k^n.
sum = K^n + ( K^(n-1) * (K-1)^1 ) + ( K^(n-2) * (K-1)^2 ) + ... (K-1)^n
sum = kn(1 + (k-1)/k + (k-1)2/k2 + … + (k-1)n)
sum = ((kn)(1 - ( (k-1)(n+1))/k(n+1))) / (1 - ((k-1)/k))
sum = kn ( (k(n+1) - (k-1)(n+1))/k(n+1) ) / ( (k - (k-1))/k )
sum = kn ( (k(n+1) - (k-1)(n+1))/k(n+1) ) / (1/k)
sum = kn ( (k(n+1) - (k-1)(n+1))/k(n+1) ) * k
sum = ( k(n+1) - (k-1)(n+1) )

उदाहरण

हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम,

#include <iostream>
#include <math.h>
using namespace std;
int calcSeriesSum(int k, int n) {
   return ( pow(k,(n+1)) - pow((k-1),(n+1)) );
;
}
int main() {
   int n = 4;
   int K = 2;
   cout<<"Sum of the series is "<<calcSeriesSum(K, n);
}

आउटपुट

Sum of the series is 31

  1. सी++ में श्रृंखला 1 + 2 + 2 + 3 + 3 + 3 + .. + n का योग ज्ञात करने का कार्यक्रम

    इस समस्या में, हमें एक संख्या n दी गई है जो श्रृंखला के उस nवें पद को दर्शाती है। हमारा काम एक सीरीज 1 + 2 + 2 + 3 +3 + 3 + .. + n C++ में योग खोजने के लिए प्रोग्राम बनाना है। । समस्या का विवरण - यहाँ, हम उस श्रेणी का योग ज्ञात करेंगे जिसका nवाँ पद संख्या n के योग का n गुना है। इसका मतलब है कि यह व

  1. C++ में arr[i]*i का योग अधिकतम करें

    समस्या कथन एन पूर्णांकों की एक सरणी को देखते हुए। आपको सरणी के तत्वों को पुनर्व्यवस्थित करने की अनुमति है। कार्य Σarr[i]*i का अधिकतम मान ज्ञात करना है, जहाँ i =0, 1, 2, .. n - 1. यदि इनपुट ऐरे ={4, 1, 6, 2} तो अधिकतम योग 28 होगा यदि हम क्रमबद्ध क्रम में तत्वों को पुनर्व्यवस्थित करते हैं- {1, 2, 4,

  1. C++ अंकगणितीय श्रृंखला के योग के लिए कार्यक्रम

    ए (प्रथम पद), डी (सामान्य अंतर) और एन (एक स्ट्रिंग में मानों की संख्या) के साथ दिया गया है और कार्य श्रृंखला उत्पन्न करना और उनके योग की गणना करना है। अंकगणित श्रृंखला क्या है अंकगणित श्रृंखला सामान्य अंतर वाली संख्याओं का अनुक्रम है जहां एक श्रृंखला का पहला पद ए तय होता है और उनके बीच सामान्य अंतर