Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 데이터프로그래밍
- 프로그래밍
- 스파크
- 알고리즘
- 토이프로젝트
- 이클립스
- SQL
- 파이썬
- 코딩테스트
- 자바
- 기초
- 문법
- 스프링
- SQL 정리
- MySQL
- 스프링부트
- 모의해킹
- 프로그래머스
- 해킹실습
- 백준
- c언어
- 빅데이터
- 문제풀이
- 필기
- 위클리챌린지
- 엘라스틱서치
- 오라클
- 데이터베이스
- 리눅스마스터 2급 2차
- SQL 문법
Archives
- Today
- Total
개발일기
백준 2052번 파이썬 풀이 : 지수 연산 본문
반응형
문제 링크 : https://www.acmicpc.net/problem/2052
2052번: 지수연산
자연수 N(1≤N≤250)이 주어졌을 때, 2의 -N승을 계산하는 프로그램을 작성하시오. 즉, 1/(2^N)을 계산하는 것이다.
www.acmicpc.net
문제
자연수 N(1≤N≤250)이 주어졌을 때, 2의 -N승을 계산하는 프로그램을 작성하시오. 즉, 1/(2^N)을 계산하는 것이다.
입력
첫째 줄에 N이 주어진다.
출력
첫째 줄에 답을 출력한다. 답을 출력할 때에는 예제와 같이 0.xyz… 의 형식으로 출력하며, 뒤에 0을 덧붙이지 않는다.
# 문제 풀이
얼핏 보면 쉬운 문제다.
당연히 print(1 / 2 ** int(input())) 을 하게 되면 간단하게 계산이 된다.
하지만 위의 경우는 10 ** (-4) 보다 작은 분수는 괜찮지만 그거보다 작은 분수는 1e-05 방식으로 저장이 되기 때문에 따로 처리해줘야 문제를 맞출 수 있다.
1
2
3
4
5
6
7
8
9
|
n = int(input())
s = "%.300f" % 2 ** - n
end = len(s)
for i in range(end-1, 1, -1):
if s[i] != '0':
end = i
break
print(s[:end+1])
|
cs |
반응형
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
백준 1052번 파이썬 풀이 : 물병 (0) | 2021.09.26 |
---|---|
백준 2163번 파이썬 풀이 : 초콜릿 자르기 (0) | 2021.09.25 |
백준 1975번 파이썬 풀이 : Number Game (0) | 2021.09.24 |
백준 1333번 파이썬 풀이 : 부재중 전화 (0) | 2021.09.24 |
백준 2754번 파이썬 풀이 : 학점 계산 (0) | 2021.09.23 |
Comments