算法-第四版-练习1.2.17解答

有理数实现的健壮性。在Rational的开发中使用断言来防止溢出。

根据算法-第四版-练习1.2.16解答修改如下方法:

    public Rational plus(Rational b)
    {
        assert(den < Integer.MAX_VALUE && den > Integer.MIN_VALUE);
        assert(b.den < Integer.MAX_VALUE && b.den > Integer.MIN_VALUE);
        long d = den * b.den;
        long n = num * b.den + den * b.num;
        return new Rational(n, d);
    }
   

添加测试:

        r1 = new Rational(1, 1000000000);
        r2 = new Rational(1, 1000000001);
        r = new Rational(1, 1000000002);
        System.out.println(r1.plus(r2).plus(r));

要使用断言生效,需要指定-ea参数,如果使用eclipse,则进行如下设置:


算法-第四版-1.2 数据抽象-习题索引汇总

算法-第四版习题索引汇总

原文地址:https://www.cnblogs.com/furzoom/p/7710212.html