/*
ID:18861501
LANG:C++
TASK:frac1
*/
/*------------------Header Files------------------*/
#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <algorithm>
#include <cstdlib>
#include <ctype.h>
#include <cmath>
#include <stack>
#include <queue>
#include <map>
#include <vector>
#include <limits.h>
using namespace std;
/*------------------Definitions-------------------*/
#define LL long long
#define PI acos(-1.0)
#define INF 0x3F3F3F3F
/*---------------------Work-----------------------*/
int N,cnt=0;
struct node
{
int a,b;
double result;
}s[30000];
bool cmp(node a,node b)
{
return a.result<b.result;
}
int gcd(int a,int b)
{
if(b==0) return a;
else return gcd(b,a%b);
}
void work()
{
scanf("%d",&N);
printf("0/1\n");
for(int i=1;i<=N-1;i++)
for(int j=2;j<=N;j++)
{
if(i>=j) continue;
s[cnt].a=i,s[cnt].b=j;
s[cnt].result=(double)((double)s[cnt].a/(double)s[cnt].b);
cnt++;
}
sort(s,s+cnt,cmp);
for(int i=0;i<cnt;i++)
{
if(i==0||s[i].result!=s[i-1].result)
{
int gcds=gcd(s[i].a,s[i].b);
printf("%d/%d\n",s[i].a/gcds,s[i].b/gcds);
}
}
printf("1/1\n");
}
/*------------------Main Function------------------*/
int main()
{
//freopen("test.txt","r",stdin);
freopen("frac1.out","w",stdout);
freopen("frac1.in","r",stdin);
work();
return 0;
}
2.1.2
最新推荐文章于 2023-04-09 02:22:57 发布