这种方法应该做什么?

时间:2018-12-05 03:47:05

标签: java

public static int f(int n) {
    return 2*f(n-2) + f(n-3);
}

在我的ICS课上,我被要求解释该方法应该做什么以及如何修复它。我以前从未见过这种排序方法,所以我不知道从哪里开始。

1 个答案:

答案 0 :(得分:1)

这是一个递归调用。在函数f(int n)中,它一次又一次地调用自身。您应该添加一个终止语句,以便递归在某些时候停止。否则会导致堆栈溢出。 例如:

public static int f(int n) {
    if (n <= 1)
        return 1;
    return 2*f(n-2) + f(n-3);
}