本文共 511 字,大约阅读时间需要 1 分钟。
给定n,其能构成真分数的数目不会超过n^2/2;我的方法就是将所有的分数都构造出来,然后从下到大排序,然后输出(输出的时候要判重);官网的解法思路跟我的是一样的,但是他在构造分数的时候,没有取那些可以约分的分数,这样效率更好一点。
代码如下:
/*ID: 15674811LANG: C++TASK: frac1*/#include#include #include #include #include using namespace std;typedef struct{ double a; //分子 double b; //分母}P;P p[20000];bool cmp(P p1,P p2){ if(p1.a/p1.b==p2.a/p2.b) return p1.b >n) { p[1].a=0; p[2].a=1; p[1].b=1; p[2].b=1; int cnt=3; for(int i=2;i<=n;i++) for(int j=1;j
转载地址:http://lkrfb.baihongyu.com/