京东在线笔试交流
9月5号晚京东在线笔试编程题求交流,第一题烽火问题,第二题4、7组成的幸运数字问题,有哪位AC的求分享代码,,,
贴上自己的,n很大时内存溢出
java
import java.util.ArrayList;
import java.util.Scanner;
public class Main2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(in.hasNext()){
int n = in.nextInt();
int[] a = new int[n];
for(int i=0;i<n;i++){
a[i] = in.nextInt();
}
for(int i=0;i<n;i++){
System.out.println(luckNum(a[i]));
}
}
}
public static String luckNum(int k){
ArrayList<String> res = new
ArrayList<String>();
res.add("4");
res.add("7");
if(k<=0)
return null;
if(k==1)
return "4";
if(k==2)
return "7";
int length = 0;
while(res.size()<k){
for(int i=0;i<res.size();i++){
String str = res.get(i);
if(str.length()==length){
res.add("4"+str);
}
}
for(int i=0;i<res.size();i++){
String str = res.get(i);
if(str.length()==length){
res.add("7"+str);
}
}
length++;
}
return res.get(k-1);
}
}