Harmonic series is inverse of a arithmetic progression. In general, the terms in a harmonic progression can be denoted as 1/a, 1/(a + d), 1/(a + 2d), 1/(a + 3d) .... 1/(a + nd).
As Nth term of AP is given as ( a + (n – 1)d). Hence, Nth term of harmonic progression is reciprocal of Nth term of AP, which is 1/(a + (n – 1)d), where "a" is the 1st term of AP and "d" is a common difference.
Method #1: Simple approach
// C++ program to find sum of harmonic series
#include<bits/stdc++.h>
using namespace std;
// Function to return sum of harmonic series
double sum(int n)
{
double i, s = 0.0;
for(i = 1; i <= n; i++)
s = s + 1 / i;
return s;
}
// Driver code
int main()
{
int n = 5;
cout << "Sum is " << sum(n);
return 0;
}
// This code is contributed by SHUBHAMSINGH10
// C program to find sum of harmonic series
#include <stdio.h>
// Function to return sum of harmonic series
double sum(int n)
{
double i, s = 0.0;
for (i = 1; i <= n; i++)
s = s + 1/i;
return s;
}
int main()
{
int n = 5;
printf("Sum is %f", sum(n));
return 0;
}
// Java Program to find sum of harmonic series
import java.io.*;
class GFG {
// Function to return sum of
// harmonic series
static double sum(int n)
{
double i, s = 0.0;
for (i = 1; i <= n; i++)
s = s + 1/i;
return s;
}
// Driven Program
public static void main(String args[])
{
int n = 5;
System.out.printf("Sum is %f", sum(n));
}
}
# Python program to find the sum of harmonic series
def sum(n):
i = 1
s = 0.0
for i in range(1, n+1):
s = s + 1/i;
return s;
# Driver Code
n = 5
print("Sum is", round(sum(n), 6))
// C# Program to find sum of harmonic series
using System;
class GFG {
// Function to return sum of
// harmonic series
static float sum(int n)
{
double i, s = 0.0;
for (i = 1; i <= n; i++)
s = s + 1/i;
return (float)s;
}
// Driven Program
public static void Main()
{
int n = 5;
Console.WriteLine("Sum is "
+ sum(n));
}
}
<?php
// PHP program to find sum of harmonic series
// Function to return sum of
// harmonic series
function sum( $n)
{
$i;
$s = 0.0;
for ($i = 1; $i <= $n; $i++)
$s = $s + 1 / $i;
return $s;
}
// Driver Code
$n = 5;
echo("Sum is ");
echo(sum($n));
?>
<script>
// JavaScript program to find sum of harmonic series
// Function to return sum of harmonic series
function sum(n)
{
let i, s = 0.0;
for(i = 1; i <= n; i++)
s = s + 1 / i;
return s;
}
// Driver code
let n = 5;
document.write("Sum is " + sum(n));
// This code is contributed by Surbhi Tyagi.
</script>
Output:
Sum is 2.283333
Time Complexity : O(n) ,as we are traversing once in array.
Auxiliary Space : O(1) ,no extra space needed.
Method #2: Using recursion
// CPP program to find sum of
// harmonic series using recursion
#include<bits/stdc++.h>
using namespace std;
float sum(float n)
{
// Base condition
if (n < 2)
return 1;
else
return 1 / n + (sum(n - 1));
}
// Driven Code
int main()
{
cout << (sum(8)) << endl;
cout << (sum(10)) << endl;
return 0;
}
// This code is contributed by
// Shashank_Sharma
// Java program to find sum of
// harmonic series using recursion
import java.io.*;
class GFG
{
float sum(float n)
{
// Base condition
if (n < 2)
return 1;
else
return 1 / n + (sum(n - 1));
}
// Driven Code
public static void main(String args[])
{
GFG g = new GFG();
System.out.println(g.sum(8));
System.out.print(g.sum(10));
}
}
// This code is contributed by Shivi_Aggarwal
# Python program to find sum of
# harmonic series using recursion
def sum(n):
# Base condition
if n < 2:
return 1
else:
return 1 / n + (sum(n - 1))
print(sum(8))
print(sum(10))
//C# program to find sum of
// harmonic series using recursion
using System;
class GFG
{
static float sum(float n)
{
// Base condition
if (n < 2)
return 1;
else
return 1 / n + (sum(n - 1));
}
// Driven Code
public static void Main()
{
Console.WriteLine(sum(8));
Console.WriteLine(sum(10));
}
}
// This code is contributed by shs..
<?php
// PHP program to find sum of
// harmonic series using recursion
function sum($n)
{
// Base condition
if ($n < 2)
return 1;
else
return 1 / $n + (sum($n - 1));
}
// Driver Code
echo sum(8) . "\n";
echo sum(10);
// This code is contributed by Ryuga
?>
<script>
// Javascript program to find sum of
// harmonic series using recursion
function sum(n)
{
// Base condition
if (n < 2)
{
return 1
}
else
{
return 1 / n + (sum(n - 1))
}
}
// Driver code
document.write(sum(8));
document.write("<br>");
document.write(sum(10));
// This code is contributed by bunnyram19
</script>
Output:
2.7178571428571425 2.9289682539682538
Time Complexity : O(n), as we are recursing for n times.
Auxiliary Space : O(n), due to recursive stack space, since n extra space has been taken.