开发一个递归程序来计算答案

时间:2013-10-07 21:18:24

标签: java recursion

我需要开发一个递归程序,可以在f3时计算结果1 / i + 2 /(i-1)+ 3 /(i-2)+ ... +(i-1)/ 2 + i / 1 (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));
}

}

1 个答案:

答案 0 :(得分:3)

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

  1. 基本情况是什么?这些是可以直接计算的情况。例如,如果n == 1,您可以直接计算答案。
  2. 什么是递归案例?假设可以通过递归调用获得减少问题的解决方案,并在此基础上构建。例如,如果您知道n - 1的答案,那么如何使用它来计算n的答案?
  3. 一旦确定了这些,您就可以定义和编写递归方法了。

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