Baekjoon Algorithm | Problem 10757: Big Number A+B
Source
https://www.acmicpc.net/problem/10757
Problem
Solve Baekjoon Online Judge problem 10757, Big Number A+B.
Input
Follow the input format and constraints given in the original problem statement.
Output
Print the answer required by the problem.
Sample Input 1
9223372036854775807 9223372036854775808
Sample Output 1
18446744073709551615
Algorithm Classification
- Math
- Implementation
- Arithmetic
- Arbitrary Precision / Big Integers
Solution
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
BigInteger a = new BigInteger(st.nextToken());
BigInteger b = new BigInteger(st.nextToken());
System.out.println(a.add(b));
}
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
String str_A = st.nextToken();
String str_B = st.nextToken();
int max_length = Math.max(str_A.length(), str_B.length());
int[] A = new int[max_length + 1];
int[] B = new int[max_length + 1];
for (int i = str_A.length() - 1, idx = 0; i >= 0; i--, idx++) {
A[idx] = str_A.charAt(i) - '0';
}
for (int i = str_B.length() - 1, idx = 0; i >= 0; i--, idx++) {
B[idx] = str_B.charAt(i) - '0';
}
for (int i = 0; i < max_length; i++) {
int value = A[i] + B[i];
A[i] = value % 10;
A[i + 1] += (value / 10);
}
StringBuilder sb = new StringBuilder();
if (A[max_length] != 0) {
sb.append(A[max_length]);
}
for (int i = max_length - 1; i >= 0; i--) {
sb.append(A[i]);
}
System.out.println(sb);
}
}