728x90
반응형
문제:
실수 a와 정수 b가 주어졌을 때, a의 b제곱을 정확하게 계산하는 프로그램을 작성하시오.
입력:
첫째 줄에 a와 b가 주어진다. (0 < a < 100, 1 ≤ b ≤ 100) a는 최대 소수점 9자리이며, 소수가 0으로 끝나는 경우는 없다. a는 항상 소수점이 포함되어 있다.
출력:
첫째 줄에 a의 b제곱을 출력한다.
풀이방법:
python은 부동 소수점 문제가 있기 때문에 특히 소숫점 계산이 더 어렵다는 문제점이 있다. 따라서 이러한 문제점을 해결하기 위해서 python에서는 Decimal이라는 자료구조를 제공한다. 소수를 스트링 형태로 만든 뒤에 이를 지수, 가수 부분으로 나누어서 연산을 하는 방법이다.
1
2
3
4
5
6
|
from decimal import Decimal, getcontext
a, b = map(str,input().split())
getcontext().prec = 1101
print("{0:f}".format(Decimal(a)**int(b)))
|
cs |
문제링크:
https://www.acmicpc.net/problem/10827
728x90
반응형
'Algorithm > Python' 카테고리의 다른 글
[BOJ]2641. 다각형그리기 (0) | 2022.02.11 |
---|---|
[BOJ]2660. 회장뽑기 (0) | 2022.02.10 |
[BOJ]2631. 줄세우기 (0) | 2022.02.08 |
[BOJ] 9576. 책 나눠주기 (0) | 2022.02.07 |
[BOJ]21610. 마법사 상어와 비바라기 (0) | 2021.11.05 |