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(); } }
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(); } }
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(); } }
Output: Sum: 5/6