Program for Addition of Two Fractions in Java

Addition of Two Fractions

The addition of two fractions involves finding a common denominator and then adding the numerators. The result is then simplified if necessary.

We will explore three methods to perform fraction addition using Java programming.

Method 1: Using Basic Arithmetic

This method directly computes the sum using the Least Common Denominator (LCD).

import java.util.Scanner;

public class FractionAddition {
    static int gcd(int a, int b) {
        while (b != 0) {
            int temp = b;
            b = a % b;
            a = temp;
        }
        return a;
    }

    static void addFractions(int num1, int den1, int num2, int den2) {
        int commonDen = den1 * den2;
        int commonNum = (num1 * den2) + (num2 * den1);
        int divisor = gcd(commonNum, commonDen);
        System.out.println("Sum: " + (commonNum / divisor) + "/" + (commonDen / divisor));
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter first fraction (numerator denominator): ");
        int num1 = scanner.nextInt();
        int den1 = scanner.nextInt();
        System.out.print("Enter second fraction (numerator denominator): ");
        int num2 = scanner.nextInt();
        int den2 = scanner.nextInt();
        addFractions(num1, den1, num2, den2);
        scanner.close();
    }
}
            
Input: 1/2 + 1/3
Output: Sum: 5/6

Method 2: Using a Class

Using a class provides better organization for fraction operations.

import java.util.Scanner;

class Fraction {
    int numerator, denominator;

    Fraction(int num, int den) {
        this.numerator = num;
        this.denominator = den;
    }
}

public class FractionAdditionClass {
    static int gcd(int a, int b) {
        return b == 0 ? a : gcd(b, a % b);
    }

    static Fraction addFractions(Fraction f1, Fraction f2) {
        int commonNum = (f1.numerator * f2.denominator) + (f2.numerator * f1.denominator);
        int commonDen = f1.denominator * f2.denominator;
        int divisor = gcd(commonNum, commonDen);
        return new Fraction(commonNum / divisor, commonDen / divisor);
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter first fraction (numerator denominator): ");
        Fraction f1 = new Fraction(scanner.nextInt(), scanner.nextInt());
        System.out.print("Enter second fraction (numerator denominator): ");
        Fraction f2 = new Fraction(scanner.nextInt(), scanner.nextInt());
        Fraction result = addFractions(f1, f2);
        System.out.println("Sum: " + result.numerator + "/" + result.denominator);
        scanner.close();
    }
}
            
Input: 1/2 + 1/3
Output: Sum: 5/6

Method 3: Using Recursion

This recursive method finds the sum by simplifying at each step.

import java.util.Scanner;

public class FractionAdditionRecursive {
    static int gcd(int a, int b) {
        return b == 0 ? a : gcd(b, a % b);
    }

    static void addFractionsRecursive(int num1, int den1, int num2, int den2) {
        if (den1 == den2) {
            System.out.println("Sum: " + (num1 + num2) + "/" + den1);
            return;
        }
        int commonDen = den1 * den2;
        int commonNum = (num1 * den2) + (num2 * den1);
        int divisor = gcd(commonNum, commonDen);
        addFractionsRecursive(commonNum / divisor, commonDen / divisor, 0, 1);
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter first fraction (numerator denominator): ");
        int num1 = scanner.nextInt();
        int den1 = scanner.nextInt();
        System.out.print("Enter second fraction (numerator denominator): ");
        int num2 = scanner.nextInt();
        int den2 = scanner.nextInt();
        addFractionsRecursive(num1, den1, num2, den2);
        scanner.close();
    }
}
            
Input: 1/2 + 1/3
Output: Sum: 5/6
Numbers

Below You will find some of the most important codes in languages like C, C++, Java, and Python. These codes are of prime importance for college semester exams and online tests.

Getting Started

HCF - Highest Common Factor: C C++ Java Python

LCM - Lowest Common Multiple: C C++ Java Python

GCD - Greatest Common Divisor: C C++ Java Python

Binary to Decimal Conversion: C C++ Java Python

Octal to Decimal Conversion: C C++ Java Python

Hexadecimal to Decimal Conversion: C C++ Java Python

Decimal to Binary Conversion: C C++ Java Python

Decimal to Octal Conversion: C C++ Java Python

Decimal to Hexadecimal Conversion: C C++ Java Python

Binary to Octal Conversion: C C++ Java Python

Quadrants in which a given coordinate lies: C C++ Java Python

Addition of Two Fractions: C C++ Java Python

Calculate the Area of a Circle: C C++ Java Python

Convert Digit/Number to Words: C C++ Java Python

Finding Roots of a Quadratic Equation: C C++ Java Python