-4

我需要开发一个递归程序,当 f3(1, i) 被调用。

public class Project4f3
{
public static int f3(int x, int y)

// I know that it has to have a stop termination and i think that is when x==y, but    im not sure
if (x==y) return ??
else return f3(x+1,y-1)
// don't think this is right but this is where I am at right now
}

public static void main(String[] args)
{
System.out.print(f3(1,i));
}

}
4

1 回答 1

3

要开发递归算法,您需要考虑两件事:

  1. 基本情况是什么?这些是可以直接计算的情况。例如,如果n == 1,您可以直接计算答案。
  2. 什么是递归案例?这些情况假设减少问题的解决方案是可用的(通过递归调用)并以此为基础。例如,如果您知道 的答案n - 1,您将如何使用它来计算 的答案n

一旦你确定了这些,你就可以定义和编码你的递归方法了。

(我应该指出n,我在这里使用的不一定是i您在等式中使用的。使用等式中的项数可能更有意义n,或者可能是两边的元素数中期。递归问题解决的创造性部分——通常也是最困难的——是提出正确的问题表示。)

于 2013-10-07T21:22:43.823 回答