パブリッククラス画分の配列をソートすることができるどのよう{Iタイプの画分(INTのN、INT d)は
private int num, den;
static double ratio;
public Fraction() {
super();
num = 1;
den = 1;
// TODO Auto-generated constructor stub
}
public Fraction(int num, int den) {
super();
this.num = num;
this.den = den;
}
public int getNum() {
return num;
}
public int getDen() {
return den;
}
public double getRatio() {
return ratio;
}
public void setNum(int num) {
this.num = num;
}
public void setDen(int den) {
this.den = den;
}
public void setRatio(double ratio) {
Fraction.ratio = ratio;
}
public Fraction add(Fraction second)
{
Fraction third = new Fraction();
third.num = this.num * second.den + this.den * second.num;
third.den = this.den * second.den;
return third;
}
public double findratio(double n, double d)
{
ratio = 0;
ratio = n/d;
return ratio;
}
public int findGCD (int n, int d)
{
int gcd = 0, temp = 0;
while (n != 0 && d != 0)
{
temp = n;
n = d % n;
d = temp;
}
gcd = n + d;
return gcd;
}
public void reduce()
{
int gcd = findGCD(num, den);
{
this.num /= gcd;
this.den /= gcd;
}
}
@Override
public String toString()
{
return num + "/" + den;
}
}
インポートjava.utilの*。
パブリッククラスtestFraction {
private static Fraction frac;
Fraction[] fracs = new Fraction[8];
public static void fillArray()
{
Scanner z = new Scanner(System.in);
Scanner k = new Scanner(System.in);
Fraction[] fracs = new Fraction[8];
for(int i = 0; i < fracs.length - 1; i++)
{
Fraction addt = new Fraction();
Fraction f = new Fraction();
fracs[i] = f;
testFraction.frac = f;
f.setNum(z.nextInt());
f.setDen(k.nextInt());
addt = f.add(fracs[i]);
}
System.out.println(frac);
Arrays.sort(fracs);
System.out.println(Arrays.toString(fracs));
z.close();
k.close();
}
public static void main(String[] args) {
fillArray();
}
}
は私がGCD、さらに、画分の削減を定義する分数クラスを持っている、しかし、私はの配列と、これらのメソッドを使用しようとして立ち往生しています分数。さらに、私はこの配列を最小から最大まで並べ替える必要があります。最小から最大のものを削除し、残りを一緒に追加して減らしてください。
誰にでも正しい軌道に乗るためのヒントがありますか?
浮動小数点(つまり浮動小数点)表現を使用して比較します。 –
すべての分母が正であると仮定すると、 'a/b'と' c/d'を 'ad'と' bc'(両辺に 'bd'を乗じて比較する)を比較することによって比較することができます。コンパレータの書き込み方法とソート方法については、http://stackoverflow.com/documentation/java/3137/comparable-and-comparator/10693/sorting-a-list-using-comparablet-or-aを参照してください。 -comparatort#t = 201612180346068842778。 – ajb