Algorithm/Python
[BOJ]10827. a^b
Pycoder
2022. 2. 9. 12:00
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
10827번: a^b
첫째 줄에 a와 b가 주어진다. (0 < a < 100, 1 ≤ b ≤ 100) a는 최대 소수점 9자리이며, 소수가 0으로 끝나는 경우는 없다. a는 항상 소수점이 포함되어 있다.
www.acmicpc.net
728x90
반응형