public class Test02 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list = getSuShu(list, 2);
System.out.println(list.get(100000));
}
private static ArrayList<Integer> getSuShu(ArrayList<Integer> list, Integer num){
if(list.size()==100001) return list;
for(int i=0;i<list.size();i++){
if(num%list.get(i)==0) return getSuShu(list, num+1);
}
System.out.println(num);
list.add(num);
return getSuShu(list, num+1);
}
}
好奇怪啊,我试着打印,然后发现在23833的时候溢出了,为什么啊,我查了一下,Integer的范围很大啊,list也分配了很多内存空间啊
------解决思路----------------------
没看懂你这个方法getSuShu是要干什么,而且这样递归调用,程序很快就会挂的。
------解决思路----------------------
看样子递归出了问题;
------解决思路----------------------
1、没有万能的方法。2、而且你完全是为了递归而递归。关于递归好的运用可以看看快速排序。