java - 尾递归 - Java

标签 java recursion tail-recursion

我正在尝试创建一种尾递归方法,并查找方程 (i/2i + 1) 的 sum,其中 i > 需要增加1-10。我在如何到达基本情况并使递归停止方面遇到困难。

这是我到目前为止所拥有的:

public class SumSeries {

    public static void main(String[] args) {
        System.out.println(sumSeries());
    }

    public static double sumSeries(){
        int i = 10;

        if (i == 0)
            return 0;
        else
            return (i / (2 * i + 1));
    }
}

最佳答案

我认为你看起来像这样:

public class SumSeries {

    public static void main(String[] args) {
        System.out.println(sumSeries(10,0));
    }

    public static double sumSeries(int i,double result){

        if (i == 1)
            return result;
        else{
          double res = result + (i / (double)(2 * i + 1));
          return sumSeries(i-1,res);
       }
   }
}

关于java - 尾递归 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29537737/

相关文章:

java - 将 JTable 编辑保存到二维数组

java - 获取具有多个 child 的树的高度

有人可以帮我理解这个程序吗?

sorting - 没有累加器可以写这个吗?

java - AspectJExpressionPointcut 使用错误的类加载器

java - 找不到index.jsp(无法加载)

MySQL 递归 - 检索所有子元素

algorithm - 递归和 DFS 等价吗?

c - 我不知道如何纠正我的尾递归(原本是常规递归)

java - 递归地改变矩阵中相同的数字