1.暴力
#include<bits/stdc++.h>
using namespace std;
int n;
struct node{
int a,b;
double ans;
};
vector<node> res;
bool cmp(node a,node b){
return a.ans<b.ans;
}
int main()
{
cin>>n;
puts("0/1");
for(int i=1;i<=n;i++)
for(int j=1;j<i;j++){
if(__gcd(j,i)==1){
res.push_back({j,i,j*1.0/i});
}
}
sort(res.begin(),res.end(),cmp);
for(auto c:res) cout << c.a<<"/"<<c.b<<endl;
puts("1/1");
return 0;
}
2.Stern-Brocot Tree
神奇操作,y总太强了
#include<bits/stdc++.h>
using namespace std;
int n;
void dfs(int a,int b,int c,int d){
if(b+d>n) return;
dfs(a,b,a+c,b+d);
cout<<a+c<<"/"<<b+d<<endl;
dfs(a+c,b+d,c,d);
}
int main()
{
cin>>n;
puts("0/1");
dfs(0,1,1,1);
puts("1/1");
return 0;
}