Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm tổng của chuỗi? 3 +? 12 + .... tối đa N số hạng trong C ++

Trong bài toán này, chúng ta được cho một giá trị nguyên N. Nhiệm vụ của chúng ta là tìm Tổng của chuỗi? 3 +? 12 + ... tối đa n số hạng .

Chuỗi là $ \ sqrt3 + \ sqrt12 + \ sqrt27 + \ sqrt48 + ... $

I E. Nó là một chuỗi các căn bậc hai.

Hãy lấy một ví dụ để hiểu vấn đề,

Input : N = 3
Output : 10.3922

Giải thích -

$ \ sqrt3 + \ sqrt12 + \ sqrt27 =1.7320 + 3.4641 + 5.1961 =10.3922 $

Phương pháp tiếp cận giải pháp

Một cách tiếp cận đơn giản để giải quyết vấn đề là tìm số hạng tổng quát của chuỗi và sau đó tìm tổng cho đến n số hạng. Và việc tính tổng bằng công thức sẽ giảm thời gian xuống còn O (1).

Sê-ri là,

$ \ sqrt3 + \ sqrt12 + \ sqrt27 + \ sqrt48 + ... $

Ở đây, chúng ta có $ \ sqrt3 $ chung trong tất cả các thuật ngữ. Cứ coi đó là điều bình thường mà chúng ta có,

$ \ Rightarrow \:\ sqrt {3} (\ sqrt {1} \:+ \:\ sqrt {4} \:+ \:\ sqrt {9} \:+ \:\ sqrt {16} \:+ \ :\ dotm) $

$ \ Rightarrow \:\ sqrt {3} (1 \:+ \:2 \:+ \:3 \:+ \:4 + \:\ dotm) $

Vì vậy, thuật ngữ chung là,

$ \ mathrm {T_n \:=\:n * \ sqrt {3}} $

Sử dụng điều này, chúng ta có thể tìm thấy tổng cho đến n số hạng của chuỗi,

$ \ mathrm {Sum} \:=\:\ sum {n} ^ * \ sqrt {3} $

$ \ mathrm {Sum} \:=\:\ sqrt {3} ^ * \ sum {n} $

$ \ mathrm {Sum} \:=\:(\ sqrt {3}) ^ * (n ^ * (n + 1)) / 2-n $

Ví dụ

Chương trình minh họa hoạt động của giải pháp của chúng tôi

#include<iostream>
#include<math.h>
using namespace std;
float calcSumNTerms(float n) {
   return ((sqrt(3)) * ((n*(n+1))/2));
}
int main() {
   float n = 25;
   cout<<"The sum of series upto n terms is "<<calcSumNTerms(n);
   return 0;
}

Đầu ra

The sum of series upto n terms is 562.917