Ở đâ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,
#includeusing 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