顺序的分数

2017-08-17  本文已影响0人  书臆
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>

using namespace std ;

struct node{
    int a,b;
    double s;
}p[32500];

int gcd(int x,int y){
    if(x%y!=0)
        gcd(y,x%y);
    else return y;
}

int cmp(node x,node y){
    return x.s<y.s;
}

int main(){
    int n,t=0;
    scanf("%d",&n);
    for(double i=1;i<=n;i++)
        for(double j=0;j<=i;j++){
            if(j==0){
                if(i==1){
                    p[++t].a=j;
                    p[t].b=i;
                    p[t].s=j/i;
                    continue ;
                }
                else continue ;
            }
            if(gcd(i,j)==1){
                p[++t].a=j;
                p[t].b=i;
                p[t].s=j/i;
            }
        }
    sort(p+1,p+1+t,cmp);
    for(int i=1;i<=t;i++)
        printf("%d%c%d\n",p[i].a,'/',p[i].b);
    return 0;
}
上一篇下一篇

猜你喜欢

热点阅读