public static int f(int n) {
return 2*f(n-2) + f(n-3);
}
在我的ICS课上,我被要求解释该方法应该做什么以及如何修复它。我以前从未见过这种排序方法,所以我不知道从哪里开始。
答案 0 :(得分:1)
这是一个递归调用。在函数f(int n)中,它一次又一次地调用自身。您应该添加一个终止语句,以便递归在某些时候停止。否则会导致堆栈溢出。 例如:
public static int f(int n) {
if (n <= 1)
return 1;
return 2*f(n-2) + f(n-3);
}