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 1 - 2 + 3 - 4 + 5 - 6 + 7 tối đa n số hạng .
Dãy số là 1 - 2 + 3 - 4 + 5 - 6 + 7 - 8 + 9 - 10 ...
Hãy lấy một ví dụ để hiểu vấn đề,
Input : N = 4 Output : -2
Giải thích -
1 - 2 + 3 - 4 = -2
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 chung 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à,
1 - 2 + 3 - 4 + 5 - 6 + 7 - 8 + 9 - 10 ...
Hãy tìm tổng của chuỗi cho một số giá trị,
sum (1) =1
sum (2) =1 - 2 =-1
sum (3) =1 - 2 + 3 =2
sum (4) =1 - 2 + 3 - 4 =-2
tổng (5) =1 - 2 + 3 - 4 + 5 =3
tổng (6) =1 - 2 + 3 - 4 + 5 - 6 =-3
tổng (7) =1 - 2 + 3 - 4 + 5 - 6 + 7 =4
tổng (8) =1 - 2 + 3 - 4 + 5 - 6 + 7 - 8 =-4
Vì vậy, chúng ta có thể kết luận rằng tổng có thể được xây dựng dưới dạng,
Tính tổng =+ (n + 1) / 2 nếu n lẻ.
Tính tổng =- (n) / 2 nếu n chẵ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> using namespace std; int calcSumNTerms(int n) { if(n%2 == 0) return ((-1)*(n/2)); return ((n+1)/2); } int main() { int n = 156; cout<<"The sum of series upto n terms is "<<calcSumNTerms(n); return 0; }
Đầu ra
The sum of series upto n terms is -78