
먼저 창영이가 좋아하는 수를 나열해보자.
4, 7, 44, 47, 74, 77, 444, 447, 474, 477, 744, 747, 774, 777, ...
무슨 패턴이 보일 것도 같다. 알아보기 쉽게 4는 0으로, 7은 1로 각각 치환해보자.
0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100, 101, 110, 111, ...
0 ~ 2^n 까지의 이진수가 반복되는 걸 확인할 수 있다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static int K;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
K = Integer.parseInt(br.readLine()) - 1;
int exp = 2;
int temp = 1;
while (K - exp >= 0) {
K -= exp;
exp <<= 1;
temp++;
}
StringBuilder ans = new StringBuilder();
for (int i = temp - 1; i >= 0; i--) {
if((K & (1 << i)) == 0)
ans.append(4);
else
ans.append(7);
}
System.out.println(ans);
}
}
