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

Chương trình tìm tổng của chuỗi điều hòa trong C ++

Trong bài toán này, chúng ta có ba số a, d và n. Nhiệm vụ của chúng tôi là tạo ra chương trình để tìm tổng của chuỗi điều hòa trong C ++.

Tiến trình điều hòa là một dãy số mà nghịch đảo của nó sẽ là một cấp số cộng. I E. nếu cho một cấp số hài A1, A2, A3 .. An, có một cấp số cộng 1 / A1, 1 / A2, 1 / A3.

Vì vậy, HP nói chung là

1/a, 1/(a+d), 1/(a+2d), … 1/(a + nd)

Trong đó 1 / a là số hạng đầu tiên. Và d là điểm khác biệt phổ biến củaAP đảo ngược.

Mô tả sự cố - Ở đây, chúng ta sẽ có số hạng đầu tiên a, công sai d, và số hạng n. Của HP và chúng ta cần tìm tổng của nó.

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

Đầu vào

a = 3, d = 2, n = 5

Đầu ra

0.878211

Giải thích

HP là ⅓, ⅕, 1/7, 1/9, 1/11.

Sum = ⅓ + ⅕ + 1/7 + 1/9 + 1/11 = 0.878211

Phương pháp tiếp cận giải pháp

Chúng tôi sẽ lặp lại số hạng thứ n này và tìm giá trị của mỗi số hạng HP và thêm nó vào sumVar. Và trả về sumVal ở cuối.

Thuật toán

Khởi tạo - sumVal =0, term =0;

  • Bước 1 - vòng lặp cho i -> 1 đến n
    • Bước 1.1 - tìm số hạng, số hạng =1 / (a ​​+ (i-1) * (d).
  • Bước 1.2 - Cập nhật thuật ngữ sumVal, sumVal + =.
  • Bước 2 - In sumVal.

Chương trình minh họa hoạt động của giải pháp của chúng tôi

Ví dụ

#include <iostream>
using namespace std;
float findSeriesSum(int a, int d, int n){
   float sumVal = 0;
   float term = 0;
   for(float i = 1; i <= n; i++){
      term = (1.0)/(float)(a + (i-1)*d);
      sumVal += term;
   }
   return sumVal;
}
int main(){
   int n = 5, a = 3, d = 2;
   cout<<"The sum of HP is "<<findSeriesSum(a, d, n);
   return 0;
}

Đầu ra

The sum of HP is 0.878211

Một cách tiếp cận khác có thể sử dụng hàm đệ quy để tìm tổng.

Chương trình minh họa hoạt động của giải pháp của chúng tôi

Ví dụ

#include <iostream>
using namespace std;
float findSeriesSum(int a, int d, int n){
   if(n == 1){
      return (float)(1.0)/a;
   }
   float term = (1.0)/ (float)(a + (n-1)*d);
   return term + findSeriesSum(a, d, n-1);
}
int main(){
   int n = 5, a = 3, d = 2;
   cout<<"The sum of HP is "<<findSeriesSum(a, d, n);
   return 0;
}

Đầu ra

The sum of HP is 0.878211