Java Program to Generate Harmonic Series

Harmonic series is the inverse of an arithmetic progression. In general, the terms in a harmonic progression can be denoted as
h1 = 1/a, h2 = 1/(a+d), h3 = 1/(a+2d), h4 = 1/(a+3d), …………….., hn = 1/(a+nd).
Where h is the harmonic series, a is arithmetic progression and d is the common difference between arithmetic progression and n is the nth term.
Example 1: (Using while loop)
Java
// Java Program to Generate Harmonic Seriesclass HarmonicSeries { // this is a main function public static void main(String args[]) { // num is the number of values we want in a series int num = 5; double result = 0.0; System.out.println("The harmonic series is: "); // printing the harmonic series till num value // using while loop while (num > 0) { // calculating harmonic values result = result + (double)1 / num; // after calculating harmonic value // decrementing num by 1 which means the common // difference is 1 num--; System.out.print(result + ", "); } }} |
Output
The harmonic series is: 0.2, 0.45, 0.7833333333333333, 1.2833333333333332, 2.283333333333333,
Time complexity: O(n) for given n terms
Auxiliary Space: O(1)
Example 2: (Using for loop)
Java
// Java Program to Generate Harmonic Seriesclass HarmonicSeries { // this is a main function public static void main(String args[]) { // num is the number of values we want in a series int num = 5; double result = 0.0; System.out.println("The harmonic series is: "); // printing the harmonic series till num value // using for loop for (int i = num; i > 0; i--) { // calculating harmonic values result = result + (double)1 / i; System.out.print(result + ", "); } }} |
Output
The harmonic series is: 0.2, 0.45, 0.7833333333333333, 1.2833333333333332, 2.283333333333333,
Example 3:
Java
// Java Program to Generate Harmonic Series// importing necessary java packagesimport java.util.Scanner;import java.lang.*;class HarmonicSeries { // this is a main function public static void main(String args[]) { // scanner class is a pre-defined class in java // for taking input from keyboard Scanner in = new Scanner(System.in); System.out.print("Enter Number: "); // storing input value in num int num = in.nextInt(); double result = 0.0; System.out.println("The harmonic series is: "); // printing the harmonic series till num value // using for loop for (int i = num; i > 0; i--) { // calculating harmonic values result = result + (double)1 / i; System.out.print(result + ", "); } }} |
Output
$ javac HarmonicSeries.java $ java HarmonicSeries Enter Number: 5 The harmonic series is: 0.2, 0.45, 0.7833333333333333, 1.2833333333333332, 2.283333333333333
$ javac HarmonicSeries.java $ java HarmonicSeries Enter Number: 6 The harmonic series is: 0.16666666666666666, 0.3666666666666667, 0.6166666666666667, 0.95, 1.45, 2.45
Time complexity: O(N) to generate series for given N terms
Auxiliary Space: O(1)



