我有一个方法可以递归地显示所有素数0-10000
,但如果我尝试使它打印第10000个素数,则会抛出堆栈溢出异常。
public void One(int i) {
int n;
if(i<10000){
One(i+1);
}
for(n=2;n<i;n++) {
if(i%n==0){
break;
}
}
if(i==n){
System.out.print(i+",");
}
}
我在这里做错了什么?
答案 0 :(得分:0)
您可以将if语句更改为
if(i < 10000){...}
为:
if(i < 10001){...}
或:
if(i <= 10000){...}
答案 1 :(得分:0)
我修好了我所要做的就是切换
if(i<10000){
One(i+1);
}
到底部而不是在顶部。