public static String solution(int n){ StringBuffer sb = new StringBuffer(); int wei = (int)(Math.log(n+1)/Math.log(2)); // 求出第n个幸运数的位长度 int num = n - ((int)Math.pow(2,wei)-1); // 求出第n个幸运数在该层的位置值 String binNum = Integer.toBinaryString(num); for(int i = 0 ; i < wei-binNum.length() ; i++) { sb.append("0"); } sb.append(binNum); String luckyNum = sb.toString(); luckyNum = luckyNum.replace("0", "4"); luckyNum = luckyNum.replace("1", "7"); return luckyNum; }
点赞 评论

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务