POJ 2756 - Autumn is a Genius

http://poj.org/problem?id=2756

概要

2つの整数 A, B が与えられるので,A + B を答える.

ただし,A, B が非負の整数のとき,'+' が先頭に存在しうる.

制約

解法

A, B の最大値は示されているものの,最小値が示されていないというトラップ. 実は多倍長演算が必要.

Scanner#nextBigInteger() だと先頭の + に自分で対応しなければならないが,Scanner#nextBigDecimal() だと先頭の + を気にしなくてもいいため楽.

 1 import java.io.*;
 2 import java.util.*;
 3 import java.math.*;
 4 
 5 public class Main {
 6   public static void main(String[] args) throws IOException {
 7     Scanner cin = new Scanner(System.in);
 8     int t = cin.nextInt();
 9     while (t-- > 0) {
10       BigDecimal a = cin.nextBigDecimal();
11       BigDecimal b = cin.nextBigDecimal();
12       System.out.println(a.add(b));
13     }
14   }
15 }
poj/2756.java