正文

test2006-08-05 15:51:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/elva6401/17276.html

分享到:

#include <iostream.h>

#include <malloc.h>

#include <stdlib.h>

 

typedef struct date

{

       int a;

       int b;

}Date;

 

int check(int b,int a)//  b/a是否是真分数

{

       int i;

       for(i=2;i<=b;i++)

       if(a%i==0 && b%i==0)

              return 0;

       return 1;

}

 

int cmp(const void *a , const void *b )

{

       struct date *c = (struct date *)a;

       struct date *d = (struct date *)b;

       float x,y;

       x=(float)(c->b)/c->a;

       y=(float)(d->b)/d->a;

       if(x-y>0)

       return 0;

       return 1;

}

 

void FareySequence(int n)//, char farey[])

{

       int i,j;

       int total=0;

       Date *s;

       s=(struct date * )malloc(n*n*sizeof(struct date));

       for(i=2;i<=n;i++)

       {

              for(j=1;j<i;j++)

              {

                     if(check(j,i)==1)

                     {

                            s[total].a=i;

                            s[total].b=j;

                            total++;

                     }

              }

       }

       qsort(s,total,sizeof(s[0]),cmp);

       for(i=0;i<total;i++)

       cout<<s[i].b<<"~"<<s[i].a<<" ";

}

 

int main()

{

       int n;

       //char *farey;

       cin>>n;

       FareySequence(n);

}

 

阅读(3027) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册