我一直在嘗試通過遞回列印數字模式 4、5、9、18、34,但出現 java.lang.stackoverflowerror 錯誤。這是我的代碼供您參考。任何幫助將不勝感激。謝謝你
public class pattern3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
pattern(4,0,5);
}
static void pattern(int n,int pos,int z) {
if(pos==z) {
return;
}
int a=(int) Math.pow(pos,2);
int b=n a;
pattern(b,pos ,z);
System.out.println(b);
}
}
uj5u.com熱心網友回復:
通過交換 和 行pattern(b, pos , z);
,System.out.println(b);
您會看到 的值b
總是4
。原因是 for 的論點pos
總是0
。后綴自增運算子(例如pos
)增加值但回傳舊值。由于 for 的第一個引數pos
是0
,舊值 forpos
將始終是0
。
你需要改變:
pattern(b, pos , z);
到:
pattern(b, pos 1, z);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/470044.html
標籤:爪哇 蚀 递归 数字 java.lang.class
上一篇:遞回寫入記憶體中的字串:Java