Algorithm/Baekjoon

10757 큰 수 A+B

BeomJun.Kwon 2022. 7. 25. 13:58

 

10757 큰 수 A+B

 

 

 

BaekJoon URL : https://www.acmicpc.net/problem/10757

 

 

 

이 문제의 해결 중점은 Data Type - Int 로 해결 할 수 없으므로 다른 형식으로 해결

 

Double로 변경 시 지수(E-exponent)가 표현된다.

// 입력 : 9223372036854775807 9223372036854775808
// 합계 : 18446744073709551615
String value[] = new BufferedReader(new InputStreamReader(System.in)).readLine().split(" ");
		
double A = Double.parseDouble(value[0]); // 9223372036854775807
double B = Double.parseDouble(value[1]); // 9223372036854775808

/**
결과
 (String)9223372036854775807
 (duble)9.223372036854776E18
 */
System.out.println(value[0]);
System.out.println(A);

 

답안

위와 같은 결과가 도출되어 숫자를 가공 할 수 있는 BigDecimal Class 사용

String value[] = new BufferedReader(new InputStreamReader(System.in)).readLine().split(" ");
		
BigDecimal A = new BigDecimal(value[0]);
BigDecimal B = new BigDecimal(value[1]);

System.out.println(A.add(B));

 

 

주의사항

Double형으로 변경 후 BigDecimal.bigDecimal 함수 적용시 값이 변질 됨

// 9223372036854785807 9223372036854795808
value = new BufferedReader(new InputStreamReader(System.in)).readLine().split(" ");

A = Double.parseDouble(value[0]);
B = Double.parseDouble(value[1]);

BigDecimal bigDecimal1 = new BigDecimal(A);
BigDecimal bigDecimal2 = new BigDecimal(B);

// 변질된 값 (지수가 포함된 Dobule형에서 형변환 과정에서 변질)
System.out.println(bigDecimal1); // 9223372036854786048
System.out.println(bigDecimal2); // 9223372036854796288

 

 

 

 

 

 

 

 

 

 

'Algorithm > Baekjoon' 카테고리의 다른 글

11653 소인수분해  (0) 2022.07.25