您的位置:首页 > 大数据 > 人工智能

Ordered Fractions--最大公约数+pair

2016-03-13 10:38 477 查看
题意:给最简分数排序

分析:pair的基本使用,用pair来存一下分数,把分子分母最大公约数为1的加入数组,然后排序一下就好了。

Code:

<span style="font-family:Microsoft YaHei;font-size:18px;">#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;

const double eps = 1e-6;
const int maxn = 160+5;

pair<int, int> p[maxn*maxn];
int n;

int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a%b);
}

bool cmp(pair<int, int> p1, pair<int, int> p2) {
return p1.first*1.0/p1.second - p2.first*1.0/p2.second < (-eps);
}

int main(){
while(scanf("%d", &n) != EOF) {
int cnt = 0;
for(int i = 1; i <= n; i++)
for(int j = 0;j <= i; j++)
if(gcd(i, j) == 1)
p[cnt++] = make_pair(j, i);
sort(p, p+cnt, cmp);
for(int i = 0; i < cnt; i++)
printf("%d/%d\n", p[i].first, p[i].second);
}

return 0;
}
</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: