Strong Root

난이도 ★


문제를 보시려면 여기를 클릭



 

힌트

 오버플로우(overflow)에 주의할 것.




이하는 코드입니다.

 

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
#include <stdio.h>
#include <math.h>
 
#pragma warning(disable:4996)
 
unsigned long convert(const unsigned long num) {
    unsigned long first = num / pow(2.24);
    unsigned long second = (num / pow(2.16)) - (first * pow(2.8));
    unsigned long third = (num / pow(2.8)) - (second * pow(2.8)) - (first * pow(2.16));
    unsigned long fourth = num % (unsigned long)pow(2.8);
 
    return first + second * pow(2.8+ third * pow(2.16+ fourth * pow(2.24);
}
 
int main() {
    int C;
    scanf("%d", &C);
 
    while (C-- > 0) {
        unsigned long num;
        scanf("%lu", &num);
 
        printf("%lu\n", convert(num));
    }
 
    return 0;
}
cs

 

 

'뿌리튼튼 CS > Algorithm' 카테고리의 다른 글

codility - BinaryGap 정답 및 해설  (0) 2017.06.06
Conversions(CONVERT) 정답 코드  (0) 2015.10.09
Mispelling(MISPELL) 정답 코드  (0) 2015.04.10
터보모드(TURBOMODE) 정답 코드  (0) 2015.04.10
HOTSUMMER 정답 코드  (0) 2015.04.10