首页 > 其他 > 详细

分数类 分子,分母

时间:2019-03-12 17:46:28      阅读:137      评论:0      收藏:0      [点我收藏+]
//欧几里得算法 求两个数a、b的最大公约数
function gcd(a,b){
    return b===0?a:gcd(b,a%b)
}
//分数类 分子,分母
class Fraction{
    constructor(num=0,den=1){
        if(den<0){
            num=-num;
            den=-den;
        }
        if(den===0){
            throw ‘分母不能为0‘
        }
        let g=gcd(Math.abs(num),den)
        this.num=num/g;
        this.den=den/g;
    }
    //
    plus(o){
        return new Fraction(this.num*o.den+this.den*o.num,this.den*o.den)
    }
    //
    minus(o){
        return new Fraction(this.num*o.den-this.den*o.num,this.den*o.den)
    }
    //
    multiply(o){
        return new Fraction(this.num*o.num,this.den*o.den);
    }
    //
    divide(o){
        return new Fraction(this.num*o.den,this.den*o.num);
    }
    //小于
    lessThan(o){
        return this.num*o.den<this.den*o.num;
    }
    //等于
    equal(o){
        return this.num*o.den===this.den*o.num;
    }
}

let a=new Fraction(3,2)
let b=new Fraction(5,6)
let c=a.plus(b)
console.log(c)

 

分数类 分子,分母

原文:https://www.cnblogs.com/caoke/p/10518211.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!