Trong bài toán này, chúng ta có n số hạng của một số. Dãy số là 0,7, 0,77, 0,777…. Nhiệm vụ của chúng tôi là tạo một chương trình để tìm sim của dãy số 0,7, 0,77, 0,777… tối đa là số hạng n.
Hãy lấy một ví dụ để hiểu vấn đề,
Đầu vào 4
Đầu ra
Giải thích - 0,7 + 0,77 + 0,777 + 0,7777 =3,0247
Để giải quyết vấn đề này, chúng ta sẽ suy ra công thức tính tổng của chuỗi. Hãy tìm công thức chung cho nó,
sum = 0.7 + 0.77 + 0.777 + ... upto n terms sum = 7 (0.1 + 0.11 + 0.111 + … upto n terms) sum = 7 (9/9)(0.1 + 0.11 + 0.111 + … upto n terms) sum = 7/9(0.9 + 0.99 + 0.999 + … upto n terms) sum = 7/9 ( (1 - 0.1) + (1 - 0.01) + (1 - 0.001) + … upto n terms ) sum = 7/9 ( (1+ 1 + 1 + … + upto n) - (0.1 + 0.01 + 0.001 + … upto n terms) ) sum = 7/9 ( (n) - (1/10 + 1/100 + 1/1000 + … upto n terms) ) sum = 7/9 ( n - 0.1 * ((1 - (0.1)n)/ (1 - 0.1)) ) sum = 7/9 ( n - 0.1 * ((1 - (0.1)n)/ (0.9)) ) sum = 7/9 ( n - ((1 - (1/10n) )/9) ) sum = 7/81 ( 9n - (1 - (1/10n) ) ) sum = 7/81 (9n - 1 + 10-n)
Công thức này đưa ra công thức chung cho tổng của chuỗi tối đa n số hạ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 <iostream> #include <math.h> using namespace std; float calcSeriesSum(int n) { return ( (.08641) * (9*n - 1) + pow(10, (-1) * n) ); } int main() { int n = 5; cout<<"The sum of series 0.7, 0.77, 0.777, ... upto n terms is "<<calcSeriesSum(n); return 0; }
Đầu ra
The sum of series 0.7, 0.77, 0.777, ... upto n terms is 3.80205