phanso

 avatar
unknown
c_cpp
2 days ago
1.1 kB
6
Indexable
#include <iostream>
#include <vector>
using namespace std;
int gcd(int a, int b) {
    if (b == 0) return a;
    return gcd(b, a % b);
}
void simplify(int& ts, int& ms) {
    int divisor = gcd(ts, ms);
    ts /= divisor;
    ms /= divisor;
    if (ms < 0) {
        ts *= -1;
        ms *= -1;
    }
}
void output(int ts, int ms) {
    simplify(ts, ms);
    if (abs(ts) > ms) {
        cout << ts / ms << "," << ts % ms << "/" << ms;
    }
    else cout << ts << "/" << ms;
    cout << endl;
}
void add(int t1, int m1, int t2, int m2) {
    int ts = t1 * m2 + t2 * m1;
    int ms = m1 * m2;
    output(ts, ms);
}
void subtract(int t1, int m1, int t2, int m2) {
    int ts = t1 * m2 - t2 * m1;
    int ms = m1 * m2;
    output(ts, ms);
}
void divide(int t1, int m1, int t2, int m2) {
    int ts = t1 * m2;
    int ms = m1 * t2;
    output(ts, ms);
}
void multiply(int t1, int m1, int t2, int m2) {
    int ts = t1 * t2;
    int ms = m1 * m2;
    output(ts, ms);
}
int main() {
    int a, b, c, d; cin >> a >> b >> c >> d;
    add(a, b, c, d);
    subtract(a, b, c, d);
    multiply(a, b, c, d);
    divide(a, b, c, d);
}
Leave a Comment