9.29 - 10.6 更新时间约持续一周
优惠券 Coupons
题目链接:优惠券 Coupons
假设我们某个情况下,我们已经有了 k 种图案,在这个条件下,获得一个新图案需要  天,那我们要求的就是 
。由于已经有了 k 种图案,那么获得一个新图案的概率就是 
,那么期望天数 
,最终答案就是 
要注意一下分数时候的输出格式。
另外就是这道题我刚开始给卡常了,有点ex。
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n, x, y;
int gcd(int a, int b) { return a == 0 ? b : gcd(b % a, a); }
signed main() {
    while (scanf("%lld", &n) != EOF) {
        x = n, y = 1;
        for (int i = 2; i <= n; i++) {
            x = x * i + y * n, y *= i;
            int GCD = gcd(x, y);
            x /= GCD, y /= GCD;
        }
        if (x % y == 0) printf("%lld\n", x / y);
        else {
            int a = x / y;
            x %= y;
            int lena = log10(a) + 1, leny = log10(y) + 1;
            for (int i = 0; i <= lena; i++) printf(" ");
            printf("%lld\n%lld ", x, a);
            for (int i = 1; i <= leny; i++) printf("-");
            puts("");
            for (int i = 0; i <= lena; i++) printf(" ");
            printf("%lld\n", y);
        }
    }
	return 0;
}














![[Linux]:线程(二)](https://img-blog.csdnimg.cn/img_convert/74f29b78c320bbeb01a4b17fc813d96f.png)


