package suwl;
import java.util.Arrays;
import java.math.MathContext;
import java.util.Scanner;
class Rational{
private int v1 ;//苏志颖
private int v2 ;//学号:201621123081(实在想不到在哪里还能添加这些东西,就只好用注释来加了)
public int getV1(){
return this.v1 ;
}
public int getV2(){
return this.v2 ;
}
Rational(){}//这是一个无参构造
Rational(int v1, int v2){
this.v1 = v1 ;
this.v2 = v2 ;
}
public Rational Add(Rational r1,Rational r2)//有理数相加
{
Rational rational = new Rational() ;
int t ;
rational.v2 = r1.v2 * r2.v2 ;
rational.v1 = r1.v1 * r2.v2 + r2.v1 * r1.v2 ;
t = Gcd(rational.v2,rational.v1) ;
rational.v2 /= t ;
rational.v1 /= t ;
return rational ;
}
public Rational Multiply(Rational r1, Rational r2)//有理数相乘
{
int t ;
Rational rational = new Rational() ;
rational.v2 = r1.v2 * r2.v2 ;
rational.v1 = r1.v1 * r2.v2 ;
t = Gcd(rational.v2 , rational.v1) ;
rational.v2 /= t ;
rational.v1 /= t ;
return rational ;
}
public int getInfo(int i)
{
if(i == 1)
return this.v1 ;
else
return this.v2 ;
}
public int Gcd(int m , int n)//求两数最大公约数
{
int t;
while(m % n != 0)
{
t = n;
n = m % n;
m = t;
}
return n;
}
}
public class Practice {
public static void main(String[] args) {
int i ;
//Rational r3 = new Rational() ;
Scanner sc = new Scanner(System.in) ;
Rational r1 = new Rational(sc.nextInt(),sc.nextInt()) ;
Rational r2 = new Rational(sc.nextInt(),sc.nextInt()) ;
//r3 = new Rational().Add(r1,r2);
System.out.println(new Rational().Add(r1,r2).getV1() + " " + new Rational().Add(r1,r2).getV2());
System.out.println(new Rational().Multiply(r1, r2).getV1()+" "+ new Rational().Multiply(r1, r2).getV2());
System.out.print("接下来要输入一个整数i来选择输出有理数r1的分子或者分母,数字i为(0,1)= ");
System.out.println(r1.getInfo(sc.nextInt()));
sc.close();;
}
}
一键复制
编辑
Web IDE
原始数据
按行查看
历史