的結果,我的代碼:無法理解遞歸
public static void main(String[] args) {
System.out.println(f(4));
}
public static int f(int n){
if(n == 1) return 1;
return n/f(n - 1);
}
爲什麼這個代碼迴路4?
的結果,我的代碼:無法理解遞歸
public static void main(String[] args) {
System.out.println(f(4));
}
public static int f(int n){
if(n == 1) return 1;
return n/f(n - 1);
}
爲什麼這個代碼迴路4?
謝謝,我沒有注意int。 – gigs
f(4) -> 4/f(3)
f(3) -> 3/f(2)
f(2) -> 2/f(2)
f(1) -> 1
Subtituting值
f(2) -> 2/1 => 2
f(3) -> 3/2 => 1 (since the return value is 1, 1.5 will be converted to 1)
f(4) -> 4/1 => 4
是的,對我來說是恥辱))) – gigs
見http://stackoverflow.com/questions/717725/understanding-recursion – elias
這是通過在調試器單步調試代碼將有助於你理解的代碼做什麼。 –