算法-第四版-练习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,则进行如下设置:
作者:马 岩(Furzoom) (http://www.cnblogs.com/furzoom/)
版权声明:本文的版权归作者与博客园共同所有。转载时请在明显地方注明本文的详细链接,未经作者同意请不要删除此段声明,感谢您为保护知识产权做出的贡献。
版权声明:本文的版权归作者与博客园共同所有。转载时请在明显地方注明本文的详细链接,未经作者同意请不要删除此段声明,感谢您为保护知识产权做出的贡献。