以下程序实现分数的加法运算,请在此程序的基础上,实现分数的减法运算、乘法运算、除法运算,并进行测试。输入要求:整数,不考虑分母为0情况;输出要求:最简分数,分母不为1,分子不为0,分母不为0 注意输出-1/4(符号在分子)
样例输入 Copy
1 4 1 2
样例输出 Copy
3/4
-1/4
1/8
1/2
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Fraction f1=new Fraction(1,4);
Fraction f2=new Fraction(1,4);
Fraction f3=f1.add(f2);
f3.print();
//此处补充程序
}
}
class Fraction{
int numerator;
int denominator;
Fraction(){}
Fraction(int n,int d){
numerator=n;
denominator=d;
}
Fraction add(Fraction f2){
Fraction f3=new Fraction();
f3.numerator=numerator*f2.denominator+denominator*f2.numerator;
f3.denominator=denominator*f2.denominator;
return f3;
}
Fraction sub(Fraction f2){ //分数的减法运算
}
Fraction multi(Fraction f2){ //分数的乘法运算
}
Fraction divide(Fraction f2){ //分数的除法运算
}
void print(){
reduction();
//以下输出需要修改成符合题目要求的形式
System.out.println(numerator+"/"+denominator);
}
void reduction(){ //对分数进行约分,化成最简分数
//请补充完整。此处直接对numerator和denominator进行约分
//求分子分母的最大公约数,记为a
numerator=numerator/a;
denominator=denominator/a;
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Fraction f1=new Fraction(1,4);
Fraction f2=new Fraction(1,4);
Fraction f3=f1.add(f2);
f3.print();
Fraction f4=f1.sub(f2); //测试分数减法
f4.print();
Fraction f5=f1.multi(f2); //测试分数乘法
f5.print();
Fraction f6=f1.divide(f2); //测试分数除法
f6.print();
}
}
class Fraction{
int numerator;
int denominator;
Fraction(){}
Fraction(int n,int d){
numerator=n;
denominator=d;
}
Fraction add(Fraction f2){
Fraction f3=new Fraction();
f3.numerator=numerator*f2.denominator+denominator*f2.numerator;
f3.denominator=denominator*f2.denominator;
f3.reduction();
return f3;
}
Fraction sub(Fraction f2){ //分数的减法运算
Fraction f3=new Fraction();
f3.numerator=numerator*f2.denominator-denominator*f2.numerator;
f3.denominator=denominator*f2.denominator;
f3.reduction();
return f3;
}
Fraction multi(Fraction f2){ //分数的乘法运算
Fraction f3=new Fraction();
f3.numerator=numerator*f2.numerator;
f3.denominator=denominator*f2.denominator;
f3.reduction();
return f3;
}
Fraction divide(Fraction f2){ //分数的除法运算
Fraction f3=new Fraction();
f3.numerator=numerator*f2.denominator;
f3.denominator=denominator*f2.numerator;
f3.reduction();
return f3;
}
void print(){
reduction();
if(denominator == 1) //判断分数是否为整数
System.out.println(numerator);
else
System.out.println(numerator+"/"+denominator);
}
void reduction(){ //对分数进行约分,化成最简分数
int a = gcd(numerator,denominator); //求分子分母的最大公约数,记为a
numerator=numerator/a;
denominator=denominator/a;
}
int gcd(int a,int b){ //求最大公约数的辗转相除法
int temp;
while(b != 0){
temp=b;
b=a%b;
a=temp;
}
return a;
}
}