[英]Is Stack OverFlow Error possible in finite recursion?
我有一個相當確定的遞歸方法。 但是,當我運行它時,我收到一個堆棧溢出錯誤。 還有另一種可能導致堆棧溢出的方法,或者該方法有什么問題嗎?
public static void solve(int row, int column){
if (row<=8){
if (column>8){
solve(row+1, 0);
}
if (row<=8 && column<=8 && (Rows[row][column]==0)){
for (int a = 1; a<=9;a++){
if (check(row, column, a)==false&&Rows[row][column]!=a){
Rows[row][column]=a;
break;
}
}
}
solve(row, column+1);
}
}
JVM中的堆棧大小是有限的,因此可以通過有限遞歸甚至沒有遞歸來獲取StackOverflow。
您可以使用-Xss
選項增加JVM堆棧大小:
java -Xss16M YouMainClass
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.