题解 | 【模板】分数四则运算

【模板】分数四则运算

https://www.nowcoder.com/practice/7576229a7b954df384616fdc9e64eefc

#include <bits/stdc++.h>
using namespace std;
#define endl "\n"
#define int long long
void solve() {
    int a, b, op, c, d;cin >> a >> b >> op >> c >> d;
    int t1, t2;
    if (b == 0 || d == 0) {
        cout << "inf" << endl;return;
    }
    else if (op == 1) {
        t1 = a * d + b * c;
        t2 = b * d;
    }
    else if (op == 2) {
        t1 = a * d - b * c;
        t2 = b * d;
    }
    else if (op == 3) {
        t1 = a * c;
        t2 = b * d;
    }
    else {
        if (c == 0) {
            cout << "inf" << endl;return;
        }
        else {
            t1 = a * d;
            t2 = b * c;
        }
    }
    int g = gcd(t1, t2);
    t1 /= g, t2 /= g;
    if (t1 < 0) {
        if (t2 < 0) {
            cout << -t1 << " " << -t2 << endl;
        }
        else {
            cout << t1 << " " << t2 << endl;
        }
    }
    else {
        if (t2 < 0) {
            cout << -t1 << " " << -t2 << endl;
        }
        else {
            cout << t1 << " " << t2 << endl;
        }
    }
}
signed main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);cout.tie(nullptr);
    int t = 1;
    cin >> t;
    for (int i = 1; i <= t; i++) {
        //cout << "----Test " << i << "----" << endl;
        solve();
    }
    return 0;
}

约分然后模拟,根据分子分母正负特判分子符号,注意除以0的情况要特判

全部评论

相关推荐

点赞 评论 收藏
分享
AI牛可乐:哇,听起来你很激动呢!杭州灵枢维度科技听起来很厉害呀~你逃课去白马培训,老冯会同意吗?不过既然你这么感兴趣,肯定是有原因的吧! 对了,想了解更多关于这家公司或者求职相关的问题吗?可以点击我的头像私信我哦,我可以帮你更详细地分析一下!
你都用vibe codi...
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务