C program find the sum of the harmonic progression

C program find the sum of the harmonic progression or 1 + 1/2 + 1/3 +…n:

In this post, we will learn how to find the sum of the series 1 + 1/2 + 1/3+…n. The base items of this series follows arithmatic progression: 1, 2, 3….

In Arithmatic progression, if the first number is a and common difference is d, the series will be:

a, a + d, a + 2d, a + 3d....

It makes easier to find the nth term in an arithmatic progression, which is:

a + (n - 1)*d

Similarly, we can find the nth term in a harmonic progression, which is:

1/(a + (n - 1)*d)

C program to find the sum by using a loop:

Let’s try to find the sum of first n numbers in a harmonic progression HP by using a loop. We will write one for loop. This program will read the value of n as input from the user and calculate the harmonic progression value.

Below is the complete program:

#include<stdio.h>

double findSum(int n)
{
    double sum = 0;

    for (double i = 1; i <= n; i++)
    {
        sum = sum + 1 / i;
    }

    return sum;
}

int main()
{
    int n;
    printf("Enter the value of n: ");
    scanf("%d", &n);

    printf("Sum upto %dth value in HP is: %.2f\n", n, findSum(n));
}

Here,

  • we are using findSum method to find the sum of first n numbers of the HP.
  • This method takes the value of n and returns the value of sum.
  • It uses one for loop and cchecks for all values from i = 1 to i = n and finds the sum. This value is returned.

If you run the above program, it will priint output as like below:

Enter the value of n: 5
Sum upto 5th value in HP is: 2.28

c example to find harmonic progression

C program to find harmonic progression recursively:

We can also solve this recursively. A recursive function calls itself with a different argument and calculates the final result.

If we write the above program in recursive, it will look as like below:

#include<stdio.h>

double findSum(int n)
{
    return n == 1 ? 1 : 1/(double)n + findSum(n - 1);
}

int main()
{
    int n;
    printf("Enter the value of n: ");
    scanf("%d", &n);

    printf("Sum upto %dth value in HP is: %.2f\n", n, findSum(n));
}

Here,

  • findSum is calling itself again and again to find the final sum.
  • It will return the same result as the above program.
Enter the value of n: 5
Sum upto 5th value in HP is: 2.28

You might also like: