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

Tổng của chuỗi 1 + (1 + 2) + (1 + 2 + 3) + (1 + 2 + 3 + 4) + ... + (1 + 2 + 3 + 4 + ... + n) trong C ++

Trong bài toán này, chúng ta được cho một số n. Nhiệm vụ của chúng ta là tạo một chương trình để tìm tổng của dãy số 1 + (1 + 2) + (1 + 2 + 3) + (1 + 2 + 3 + 4) +… + (1 + 2 + 3 + 4 + ... + n).

Lấy ví dụ để hiểu vấn đề,

Đầu vào

 n =4 

Đầu ra

 20 

Giải thích - (1) + (1 + 2) + (1 + 2 + 3) + (1 + 2 + 3 + 4) =20

Một giải pháp đơn giản cho vấn đề sẽ là tạo chuỗi bằng cách sử dụng hai vòng lặp.

Thuật toán

 Khởi tạo sum =0 Bước 1:Vòng lặp cho i -> 1 đến n tức là i =1 đến i <=n. Bước 1.1:Vòng lặp cho j -> 1 đến i tức là i =1 đến i <=i. Bước 1.1.1:cập nhật tổng, tức là sum + =j.Bước 2:trả về tổng. 

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  using namespace std; int calcSeriesSum (int n) {int sum =0; for (int i =1; i <=n; i ++) for (int j =1; j <=i; j ++) sum + =j; return sum;} int main () {int n =7; cout <<"Tính tổng của dãy số 1 + (1 + 2) + (1 + 2 + 3) + (1 + 2 + 3 + 4) + ... + (1 + 2 + 3 + 4 + ... + "< 

Đầu ra

Tổng của chuỗi 1 + (1 + 2) + (1 + 2 + 3) + (1 + 2 + 3 + 4) + ... + (1 + 2 + 3 + 4 + ... + 7) là 84

Nhưng cách làm này không hiệu quả.

Một giải pháp hiệu quả có thể là suy ra công thức chung để tìm tổng của chuỗi.

 sum =1 + (1 + 2) + (1 + 2 + 3) + (1 + 2 + 3 + 4)… sum =∑ ((1 + 2 + 3 + 4 + 5 + ...) ) sum =∑ (n (n + 1) / 2) sum =½ ∑ (n ^ 2 + n) =½ (∑ (n2) + ∑ n) sum =½ [(n (n + 1) (2n + 1)) / 6) + ½ (n (n + 1) / 2] sum =½ [(n (n + 1)) / 2 ((2n + 1) / 3 + 1)] sum =½ [(( n (n + 1)) / 2) * (2n + 1 + 3) / 3] sum =½ [(n (n + 1) (2n + 4)) / 6] sum =(n (n + 1) (2n + 4)) / 6 

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  using namespace std; int calcSeriesSum (int n) {return (n * (n + 1) * (2 * n + 4)) / 12;} int main () {int n =7; cout <<"Tính tổng của dãy số 1 + (1 + 2) + (1 + 2 + 3) + (1 + 2 + 3 + 4) + ... + (1 + 2 + 3 + 4 + ... + "< 

Đầu ra

Tổng của chuỗi 1 + (1 + 2) + (1 + 2 + 3) + (1 + 2 + 3 + 4) + ... + (1 + 2 + 3 + 4 + ... + 7) là 84