编写一个分数类Fraction
,该类包含两个int型参数表示分子与分母。
同时,该类包含如下方法:
(1)Fraction plus(Fraction r)
表示将自己的分数和r的分数相加,产生一个新的Fraction
的对象。
(2)void print()
表示将其按照“分子/分母”的形式输出。注意:若存在可以化简的情况需要化简后输出,即2/4应该被化简为1/2再输出,若结果为1/1,则输出1。
注意:暂不考虑分母为0的情况。
裁判测试程序样例:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); Fraction a = new Fraction(in.nextInt(), in.nextInt()); Fraction b = new Fraction(in.nextInt(),in.nextInt()); a.print(); b.print(); a.plus(b).print(); a.print(); b.print(); in.close(); } } /* 请在这里填写答案 */
输入样例:
2 4 1 3
输出样例:
1/2
1/3
5/6
1/2
1/3
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
class Fraction{
int zi;
int mu;
public Fraction(int zi, int mu) {
super();
this.zi = zi;
this.mu = mu;
}
public int getZi() {
return zi;
}
public void setZi(int zi) {
this.zi = zi;
}
public int getMu() {
return mu;
}
public void setMu(int mu) {
this.mu = mu;
}
public Fraction plus(Fraction r) {
int x,y;// 2/4+1/3
y=r.getMu()*this.mu;//12
x=r.getMu()*zi+r.getZi()*mu;//6+4
Fraction xin=new Fraction(x, y);
return xin;
}
public void print() {
int k=1;
if(mu>=zi) {
k=zi;//10
for(;zi%k!=0||mu%k!=0;) {//
k--;
}
}else if(mu<zi) {
k=mu;
for(;zi%k!=0||mu%k!=0;) {
k--;
}
}
if(zi/k==1&&mu/k==1)
System.out.println(1);
else
System.out.println(zi/k+"/"+mu/k);
}