Ai
1 Star 0 Fork 0

呆呆呆呆/java201421123042

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
RationalM.java 2.38 KB
一键复制 编辑 原始数据 按行查看 历史
呆呆呆呆 提交于 2017-10-01 10:38 +08:00 . 有理数
package week03;
import java.util.Scanner;
//201421123042
//廖文姑
class Rational{
private int v1; //有理数的定义
private int v2;
public Rational(){
}
public Rational(int v1,int v2){
this.v1 = v1;
this.v2 = v2;
} //初始化有理数分子和分母
public int Gcd(int m,int n){ //求两个数的最大公约数
int t;
while(m%n!=0)
{
t=n;
n=m%n;
m=t;
}
return n;
}
public String Minus(Rational a1,Rational a2){ //有理数相减
int t;
Rational a3 = new Rational();
a3.v2 = a1.v2*a2.v2;
a3.v1 = a1.v1*a2.v2-a2.v1*a1.v2;
t=a3.Gcd(a3.v1, a3.v2);
a3.v2/=t;
a3.v1/=t;
return a3.v1+"/"+a3.v2;
}
public String Add(Rational a1,Rational a2){ //有理数相加
int t;
Rational a3 = new Rational();
a3.v2 = a1.v2*a2.v2;
a3.v1 = a1.v1*a2.v2+a2.v1*a1.v2;
t=a3.Gcd(a3.v1, a3.v2);
a3.v2/=t;
a3.v1/=t;
return a3.v1+"/"+a3.v2;
}
public String Multiply(Rational a1,Rational a2){ //有理数相乘
Rational a3 = new Rational();
a3.v2 = a1.v2*a2.v2;
a3.v1 = a1.v1*a2.v1;
int t = a3.Gcd(a3.v1, a3.v2);
a3.v2/=t;
a3.v1/=t;
return a3.v1+"/"+a3.v2;
}
public String Divide(Rational a1,Rational a2){ //有理数相除
Rational a3 = new Rational();
a3.v2 = a1.v2*a2.v1;
a3.v1 = a1.v1*a2.v2;
int t = a3.Gcd(a3.v1, a3.v2);
a3.v2/=t;
a3.v1/=t;
return a3.v1+"/"+a3.v2;
}
public int getV1() {
return v1;
}
public void setV1(int v1) {
this.v1 = v1;
}
public int getV2() {
return v2;
}
public void setV2(int v2) {
this.v2 = v2;
}
}
public class RationalM {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Rational r = new Rational();
while(true) {
Rational r1 = new Rational(sc.nextInt(),sc.nextInt());
Rational r2 = new Rational(sc.nextInt(),sc.nextInt());
String a = sc.next();
while((a.equals("+")||a.equals("-")||a.equals("*")||a.equals("/"))){
switch (a) {
case "+":
System.out.println(r.Add(r1, r2));
a = sc.next();
break;
case "-":
System.out.println(r.Minus(r1, r2));
a = sc.next();
break;
case "*":
System.out.println(r.Multiply(r1, r2));
a = sc.next();
break;
case "/":
System.out.println(r.Divide(r1, r2));
a = sc.next();
break;
}
}
System.out.println("nextNumber:");
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/liao2911768687/java201421123042.git
git@gitee.com:liao2911768687/java201421123042.git
liao2911768687
java201421123042
java201421123042
master

搜索帮助