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