Program to find sum of harmonic series
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++
// 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
// 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
// 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)); } } |
Python3
# 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#
// 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 // 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 )); ?> |
Javascript
<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
C++
// 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
// 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 |
Python3
# 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#
//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 // 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 ?> |
Javascript
<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.