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