본문 바로가기
Computer Science

세제곱근을 찾아라

by OKOK 2019. 2. 1.

1. 세제곱근

2. 이분 탐색

3. 생각하던  풀이가 맞는지 ㅇㅇ 


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
31
32
33
34
35
#include <stdio.h>
 
long long N;
long long result;
int main()
{
    freopen("input.txt""r", stdin);
    int testcase, testnum;
    scanf("%d"&testcase);
    for (testnum = 1; testnum <= testcase; testnum++)
    {
        result = -1// 못 찾았을 경우 -1 을 출력함
        scanf("%lld"&N);
        long long high = 1000000// 가질 수 있는 최대값
        long long low = 0;
        while (low <= high) // 이분 탐색
        {
            long long mid = (high + low) / 2;
            if (mid * mid * mid == N)
            {
                result = mid;
                break;
            }
 
            if (mid* mid*mid > N) {
                high = mid - 1;
            }
            else if (mid * mid * mid < N) {
                low = mid + 1;
            }
        }
        printf("#%d %lld\n", testnum, result);
    }
    return 0;
}
cs

 


'Computer Science' 카테고리의 다른 글

  (0) 2019.02.03
조합  (0) 2019.02.03
혜리의 숫자 나누기  (0) 2019.02.01
현주의 상자 바꾸기  (0) 2019.02.01
문자열 변경하기  (0) 2019.01.31

댓글