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

Tính tổng của chuỗi 1/1 + (1 + 2) / (1 * 2) + (1 + 2 + 3) / (1 * 2 * 3) +… + tối đa n số hạng trong C ++

Ở đây, chúng ta được cung cấp một số nguyên n. Nó xác định số hạng của chuỗi 1/1 + ((1 + 2) / (1 * 2)) + ((1 + 2 + 3) / (1 * 2 * 3)) +… + tối đa n số hạng .

Nhiệm vụ của chúng ta là tạo một chương trình tìm tổng của chuỗi 1/1 + (1 + 2) / (1 * 2) + (1 + 2 + 3) / (1 * 2 * 3) +… tối đa n số hạng .

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

Đầu vào

 n =3 

Đầu ra

 3.5 

Giải thích - (1/1) + (1 + 2) / (1 * 2) + (1 + 2 + 3) / (1 * 2 * 3) =1 + 1,5 + 1 =3,5

Một giải pháp đơn giản cho vấn đề này là lặp lại từ 1 đến n. Sau đó, cộng các giá trị của tổng của tôi chia cho sản phẩm đến thứ i.

Thuật toán

 Kết quả ban đầu =0.0, sum =0, prod =1Bước 1:lặp lại từ i =0 đến n. Và làm theo:Bước 1.1:Cập nhật tổng và giá trị sản phẩm, tức là sum + =i và prod * =i Bước 1.2:Cập nhật kết quả theo kết quả + =(sum) / (prod) .Bước 2:In kết quả. 

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; double calcSeriesSum (int n) {double result =0.0; int sum =0, prod =1; for (int i =1; i <=n; i ++) {sum + =i; prod * =i; kết quả + =((kép) sum / prod); } trả về kết quả;} int main () {int n =12; cout <<"Tính tổng của chuỗi 1/1 + (1 + 2) / (1 * 2) + (1 + 2 + 3) / (1 * 2 * 3) + ... tối đa" < 

Đầu ra

 Tổng của chuỗi 1/1 + (1 + 2) / (1 * 2) + (1 + 2 + 3) / (1 * 2 * 3) + ... tối đa 12 số hạng là 4.07742