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; }