PTA java分数类:编写一个分数类Fraction,该类包含两个int型参数表示分子与分母。

分数类

编写一个分数类Fraction,该类包含两个int型参数表示分子与分母。

同时,该类包含如下方法:

(1)Fraction plus(Fraction r)
表示将自己的分数和r的分数相加,产生一个新的Fraction的对象。

(2)void print()
表示将其按照“分子/分母”的形式输出。注意:若存在可以化简的情况需要化简后输出,即2/4应该被化简为1/2再输出,若结果为1/1,则输出1。

注意:暂不考虑分母为0的情况。

输入样例:

2 4 1 3

输出样例:

1/2
1/3
5/6
1/2
1/3

代码

package  review;

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();
    }
}

/* 请在这里填写答案 */
class Fraction{
    int fz;
    int fm;

    public Fraction(int fz, int fm) {
        this.fz = fz;
        this.fm = fm;
    }
    //这个类实际是返回一个新的Fraction 里面存的是两数相加 并且通分之后得到的 "新的分子和分母"
    Fraction plus(Fraction r){
        int newfz=this.fz*r.fm+r.fz*this.fm;//计算两个数通分之后的分子之和
        int newfm=this.fm*r.fm;//计算两个数通分之后的分母之和
        int gcd=gcd(newfz,newfm);//计算通分之后分子和分母的最大公约数
        return new Fraction(newfz/gcd,newfm/gcd);//返回一个新的Fraction对象,里面是两数通分 相加之后 并且约分了的分子和分母
    }
    public int gcd(int a,int b){
        while(b!=0){
            int temp=b;
            b=a%b;
            a=temp;
        }
        return a;
    }
    void print(){
        int gcd=gcd(fz,fm);
        fz/=gcd;
        fm/=gcd;
        if(fz==fm){
            System.out.println(1);
        }else
            System.out.println(fz+"/"+fm);

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值