五、有理数类
【答案】:Rational(this.rax.rb + this.rbx.ra, this.rb*x.rb)
public class Test01 {static class Rational //内部类 【main调用内部类 : 内部类前 要加 static】{private long ra;private long rb;private long gcd(long a, long b){ //辗转相除法 求 最大公约数gcdif(b==0) return a;return gcd(b,a%b);}public Rational(long a, long b){ra = a;rb = b;long k = gcd(ra,rb);if(k>1){ //需要约分ra /= k;rb /= k;}}// 加法public Rational add(Rational x){return new Rational(this.ra*x.rb + this.rb*x.ra, this.rb*x.rb); //填空位置// 一定返回Rational 所以, 先new一个Rational// 分母:分母*分母:this.rb*x.rb// 分子:自己的分子*x的分母+自己的分母*x的分子}// 乘法public Rational mul(Rational x){return new Rational(ra*x.ra, rb*x.rb); //更新 分子与分母:分子*分子、分母*分母}public String toString(){if(rb==1) return "" + ra;return ra + "/" + rb;}}public static void main(String[] args) {Rational a = new Rational(1,3);Rational b = new Rational(1,6);Rational c = a.add(b);System.out.println(a + "+" + b + "=" + c);}}
根据乘法的返回值推测加法 return new Rational(rax.ra, rbx.rb);