static String luckNumber(int n) {
if (n < 1)
return "";
if (n == 1)
return "4";
if (n == 2)
return "7";
Queue<String> queue = new LinkedList<>();
queue.offer("4");
queue.offer("7");
int pollTime = (n - 1) / 2;
for (int i = 0; i < pollTime; i++) {
String s = queue.poll();
queue.offer(s + "4");
queue.offer(s + "7");
}
String pos = queue.poll();
String pre = pos;
while (!queue.isEmpty()) {
pre = pos;
pos = queue.poll();
}
return n % 2 == 0 ? pos : pre;
}