首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Heron算法递归C#

Heron算法递归C#
EN

Stack Overflow用户
提问于 2022-05-02 21:23:16
回答 1查看 81关注 0票数 0

我正在尝试在C#中递归地实现苍鹭算法。我真的不明白我的代码哪里错了:

给出算法的定义:

代码语言:javascript
复制
x[n+1] = (p-1) /p*x[n] + a/p*x[n]^p-1
Where xo = 1 and p root a
代码语言:javascript
复制
public static double Heron(int x,int p,int a)
{
    if(x == 0)
    {
        return 1.0;
    }

    return ((p-1.0)/p)*Heron(--x,p,a)+a/(p*Math.Pow(Heron(--x,p,a),--p));

}

如Heron(1,3,5)应返回7/3;

EN

回答 1

Stack Overflow用户

发布于 2022-05-02 22:04:40

不要修改表达式中xp的值。

只管用

代码语言:javascript
复制
double x_n = Heron(x-1,p,a);
return ((p-1.0)/p)*x_n+a/(p*Math.Pow(x_n,p-1));

我还在x_n中保留了递归的值,因此它不会被调用两次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72092547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档