Program for Addition of Two Fractions in C++

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 C++ programming.

Method 1: Using Basic Arithmetic

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

#include <iostream>
using namespace std;
int gcd(int a, int b) {
    while (b != 0) {
        int temp = b;
        b = a % b;
        a = temp;
    }
    return a;
}
void addFractions(int num1, int den1, int num2, int den2) {
    int common_den = den1 * den2;
    int common_num = (num1 * den2) + (num2 * den1);
    int divisor = gcd(common_num, common_den);
    cout << "Sum: " << common_num / divisor << "/" << common_den / divisor << endl;
}
int main() {
    int num1 = 1, den1 = 2, num2 = 1, den2 = 3;
    addFractions(num1, den1, num2, den2);
    return 0;
}
            
Input: 1/2 + 1/3
Output: Sum: 5/6

Method 2: Using Structs

Using structures provides better organization for fraction operations.

#include <iostream>
using namespace std;
struct Fraction {
    int numerator;
    int denominator;
};
int gcd(int a, int b) {
    return b == 0 ? a : gcd(b, a % b);
}
Fraction addFractions(Fraction f1, Fraction f2) {
    Fraction result;
    result.numerator = (f1.numerator * f2.denominator) + (f2.numerator * f1.denominator);
    result.denominator = f1.denominator * f2.denominator;
    int divisor = gcd(result.numerator, result.denominator);
    result.numerator /= divisor;
    result.denominator /= divisor;
    return result;
}
int main() {
    Fraction f1 = {1, 2}, f2 = {1, 3}, sum;
    sum = addFractions(f1, f2);
    cout << "Sum: " << sum.numerator << "/" << sum.denominator << endl;
    return 0;
}
            
Input: 1/2 + 1/3
Output: Sum: 5/6

Method 3: Using Recursion

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

#include <iostream>
using namespace std;
int gcd(int a, int b) {
    return b == 0 ? a : gcd(b, a % b);
}
void addFractionsRecursive(int num1, int den1, int num2, int den2) {
    if (den1 == den2) {
        cout << "Sum: " << num1 + num2 << "/" << den1 << endl;
        return;
    }
    int common_den = den1 * den2;
    int common_num = (num1 * den2) + (num2 * den1);
    int divisor = gcd(common_num, common_den);
    addFractionsRecursive(common_num / divisor, common_den / divisor, 0, 1);
}
int main() {
    int num1 = 1, den1 = 2, num2 = 1, den2 = 3;
    addFractionsRecursive(num1, den1, num2, den2);
    return 0;
}
            
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