求助 开启O2后全部OLE,未开启 AC
查看原帖
求助 开启O2后全部OLE,未开启 AC
148050
tuxiaobei楼主2020/9/3 10:59

RT

开启O2 未开启O2

code:

#include <bits/stdc++.h>
using namespace std;

struct frac {
    long long a, b;
    long long gcd(long long a, long long b)
    {
        return b ? gcd(b, a % b) : a;
    }
    void cut()
    {
        long long g = gcd(a, b);
        a /= g, b /= g;
    }
    frac operator+(const frac& p) const
    {
        frac ret;
        ret.b = b * p.b;
        ret.a = a * p.b + p.a * b;
        ret.cut();
        return ret;
    }
    int cnt(long long a, char c)
    {
        while (a) {
            putchar(c);
            a /= 10;
        }
    }
    void print()
    {
        cnt(a / b, ' ');
        printf("%lld\n", a % b);
        printf("%lld", a / b);
        cnt(b, '-');
        puts("");
        cnt(a / b, ' ');
        printf("%lld", b);
    }
};
frac f[100];
int main()
{
    f[1] = frac { 1, 1 };
    int n;
    scanf("%d", &n);
    for (int i = 2; i <= n; i++) {
        f[i] = f[i - 1] + frac { n, n - i + 1 };
    }
    f[n].print();
}
2020/9/3 10:59
加载中...