Java 从我的分数类调用reduce方法并应用于我的FractionMath
这是我的分数课。数学是可行的,但我想减少分数。注意:这在EclipseSDKJuno中Java 从我的分数类调用reduce方法并应用于我的FractionMath,java,Java,这是我的分数课。数学是可行的,但我想减少分数。注意:这在EclipseSDKJuno中 public class Fraction { private int n, d; public Fraction(int num, int denum){ n = num; d = denum; } public int getNumerator(){ return n; } public void setNumerator(int num){ n = num; } public
public class Fraction {
private int n, d;
public Fraction(int num, int denum){
n = num;
d = denum;
}
public int getNumerator(){
return n;
}
public void setNumerator(int num){
n = num;
}
public int getDenumerator(){
return d;
}
public void setDenumerator(int denum){
d = denum;
}
**public void reduce(){
int gcf = 1, smaller;
if (n < d){
smaller = n;
}
else{
smaller = d;
}
for (int i = 1;i <= smaller; i++){
if(n % i == 0 && d % i ==0){
gcf = i;
}
}
n = n/gcf;
d = d/gcf;
System.out.print(n + "/" + d);
}**
}
网络上有很多解决方案。也许可以试试这个。也许只需在构造函数末尾调用
reduce()
?2.所有这些操作都应该作为Fraction
的方法来实现,例如检查biginger
。
import java.util.*;
public class FractionMath {
public static void main(String[] args){
Fraction f1, f2;
Fraction ans = new Fraction(0,0);
Scanner sc = new Scanner(System.in);
System.out.print("Enter the numerator; then denumerator:\n");
f1 = new Fraction(sc.nextInt(), sc.nextInt());
System.out.print("Enter another numerator; and denumerator:\n");
f2 = new Fraction(sc.nextInt(), sc.nextInt());
System.out.print("Add (1)\nSubtract (2)\nMultiply (3)\nDivide (4)\n");
int choice = sc.nextInt();
if (choice == 1){
if (f1.getDenumerator() == f2.getDenumerator()){
ans.setNumerator(f1.getNumerator() + f2.getNumerator());
ans.setDenumerator(f1.getDenumerator());
}
else{
ans.setNumerator(f1.getNumerator() * f2.getDenumerator() + f2.getNumerator() * f1.getDenumerator());
ans.setDenumerator(f1.getDenumerator() * f2.getDenumerator());
}
}
else if (choice == 2){
if (f1.getDenumerator() == f2.getDenumerator()){
ans.setNumerator(f1.getNumerator() - f2.getNumerator());
ans.setDenumerator(f1.getDenumerator());
}
else{
ans.setNumerator(f1.getNumerator() * f2.getDenumerator() - f2.getNumerator() * f1.getDenumerator());
ans.setDenumerator(f1.getDenumerator() * f2.getDenumerator());
}
}
else if (choice == 3){
ans.setNumerator(f1.getNumerator() * f2.getNumerator());
ans.setDenumerator(f1.getDenumerator() * f2.getDenumerator());
}
else if (choice == 4){
ans.setNumerator(f1.getNumerator() * f2.getDenumerator());
ans.setDenumerator(f1.getDenumerator() * f2.getNumerator());
}
}
}