AcWing 1360. 有序分数
原题链接
简单
作者:
lyxcqupt
,
2024-03-13 17:14:56
,
所有人可见
,
阅读 13
一次对
import java.util.*;
//1:无需package
//2: 类名必须Main, 不可修改
public class 每日一题 {
static int n;
static double res;
static double[] num = new double[2];
static class Num implements Comparable<Num> {
String k;
double v;
public Num(String k, double v) {
this.k = k;
this.v = v;
}
@Override
public int compareTo(Num num) {
return Double.compare(v, num.v);
}
}
static ArrayList<Num> ans = new ArrayList<>();
static HashSet<Double> set = new HashSet<>();
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
n = scan.nextInt();
dfs(0,n);
Collections.sort(ans);
for(Num num : ans)
System.out.println(num.k);
scan.close();
}
public static void dfs(int u,int max){
if(u == 2){
if(num[0] == 0) return;
String str = (int)num[1] + "/" + (int)num[0];
if(num[0] != 0){
res = num[1]/num[0];
}
if(!set.contains(res)) {
ans.add(new Num(str,res));
set.add(res);
}
return;
}
for(int i = 0;i <= max;i++){
num[u] = i;
dfs(u+1,i);
num[u] = 0;//可有可无!
}
}
}