Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using std::cout;
- using std::cin;
- using std::endl;
- struct Rational
- {
- int m_numerator;
- int m_denominator;
- };
- Rational sum(Rational& n1, Rational& n2)
- {
- Rational result = { (n1.m_numerator * n2.m_denominator) + (n1.m_denominator * n2.m_numerator), n1.m_denominator * n2.m_denominator };
- return result;
- }
- Rational sum(const Rational* pNum1, const Rational* pNum2)
- {
- Rational result = { (pNum1->m_numerator * pNum2->m_denominator) + (pNum1->m_denominator * pNum2->m_numerator), pNum1->m_denominator * pNum2->m_denominator };
- return result;
- }
- // Greatest Common Divisor
- // Recursive method
- int gcd(int num1, int num2)
- {
- // stop condition
- if (num1 == num2)
- return num1;
- if (num1 > num2)
- return gcd(num1 - num2, num1);
- return gcd(num1, num2 - num1);
- }
- void simplify(Rational& number)
- {
- int greatCD = gcd(number.m_numerator, number.m_denominator);
- number.m_numerator /= greatCD;
- number.m_denominator /= greatCD;
- }
- int main()
- {
- Rational num1 = {6, 12}, num2 = {5, 10};
- //sum(num1, num2);
- //sum(&num1, &num2);
- Rational result = sum(num1, num2);
- cout << result.m_numerator << "/" << result.m_denominator << endl;
- simplify(result);
- cout << result.m_numerator << "/" << result.m_denominator << endl;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement