본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 2052 : 지수연산

반응형

https://www.acmicpc.net/problem/2052

 

2052번: 지수연산

자연수 N(1 ≤ N ≤ 250)이 주어졌을 때, 2의 -N승을 계산하는 프로그램을 작성하시오. 즉, 1/(2N)을 계산하는 것이다.

www.acmicpc.net

부동소수점을 표현하는 방식에서 지나치게 0의 개수가 많아지면 e-13의 식으로 exponential form(scientific notation) 등을 사용해 출력하게 됩니다. 이를 제거하고 출력하는 문제였습니다

 

📕 풀이방법

📔 입력 및 초기화

2로 나누는 횟수 n, 정답을 출력할 변수 ans를 선언해주고 n에 입력해줍니다.

📔 풀이과정

pow함수를 사용하려면 pow(밑, 지수)식으로 2개의 인자로 넘겨줘야 합니다. 1/2^n형태이므로 pow(0.5, n)이 됩니다.

📔 정답출력

%.*f형태로 출력하게 되면 exponential form을 사용하지 않도록 할 수 있습니다.

printf("%.*f, 자릿수, 적용하고 싶은 결과값) 의 형태로 적절히 인자를 넘겨주도록 합시다.


📕 Code

#include <bits/stdc++.h>
using namespace std;
int n;
double ans;
int main(){
    cin >> n;
    ans = pow(0.5,n);
    printf("%.*f",n,ans);
}