庞大的Java为我们提供了很多有用的功能,对ACMer来说最有用的可能莫过于BigInteger类了,BigInteger功能强大,效率颇高,是过高精题的居家旅行必备好工具,但刚才试着用Java来过一道高精题Autumn is a Genius时,却总是莫名其妙地RTE(Runtime Error)掉,实在郁闷到极。
后来经过详细的测试,才发现BigInteger无法接受有前置'+'号的输入,比如读入+123会抛出一个异常:
Exception in thread "main" java.lang.NumberFormatException: For input string: "+123"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.math.BigInteger.
<
init
>
(Unknown Source)
at java.math.BigInteger.
<
init
>
(Unknown Source)
at Autumn_is_a_Genius.main(Autumn_is_a_Genius.java:10)
后来发现,即使是屏幕读入一个int也会抛出这样的异常。只要自己手工处理掉它就可以过了,20行不到的代码,呵呵~
posted on 2007-03-11 14:34
踏雪赤兔 阅读(1836)
评论(1) 编辑 收藏 引用 所属分类:
玩转编程