递归函数返回错误的值

贾马尔·侯赛因(Jamal Hussain)

我写了以下代码来生成数字的总和,例如,如果输入10,它将生成它的总和,例如10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0输出:55可以正常工作。

public int GenerateSum(int num)
    {
        if (num <=0)
        {
            return 0;
        }
        int temp = num + GenerateSum(num - 1);
        return temp;
    }

现在,我已经更改了此代码以产生差异,例如,如果我输入数字说10,它将产生差异,例如10-9-8-7-6-5-4-3-2-1-0输出:-35

public int GenerateDifference(int num)
    {
        if (num <= 0)
        {
            return 0;
        }
        int temp = num - GenerateDifference(num - 1);
        return temp;
    }

现在,当我运行GenerateDifference(10)时,它会向我返回输出5。对于GenerateDifference(100),它会给我输出50,这也是错误的。如果它求和,那么它也应求差(如果我错了,请纠正我)。有任何帮助或指导吗?

哈里斯

上面的代码给出了5,因为当您使用递归生成时10-9-8-7-6-5-4-3-2-1-0,递归最终要做的是

10 - ( 9 - ( 8 - ( 7 - ( 6 - ( 5 - ( 4 - ( 3 - ( 2 - ( 1 - 0) ) ) ) ) ) ) ) ) 

解决上述方程式,您将得到5答案

由于您需要解决方案,因此10-9-8-7-6-5-4-3-2-1-0可以将其简化为10 - ( 9+8+7+6+5+4+3+2+1+0 )然后,要使用递归获得答案,您将需要类似以下内容的东西

public int GenerateDifference(int num)
{
    if (num <= 0)
    {
        return 0;
    }
    int temp = num - GenerateSum(num - 1);
    return temp;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么这个递归函数返回错误的值?

来自分类Dev

递归函数返回类型错误

来自分类Dev

递归函数返回空值

来自分类Dev

从递归函数返回值

来自分类Dev

递归函数返回错误地返回false

来自分类Dev

如何终止递归函数并返回值

来自分类Dev

从异步递归函数返回值

来自分类Dev

用于返回递归值的SQL函数

来自分类Dev

递归函数的返回值为'undefined'

来自分类Dev

递归函数不返回对象值之和

来自分类Dev

从Linux bash递归函数返回值

来自分类Dev

VBScript递归函数问题返回值

来自分类Dev

从Linux bash递归函数返回值

来自分类Dev

递归函数的意外返回值

来自分类Dev

递归函数返回布尔值

来自分类Dev

Python 中递归函数的返回值

来自分类Dev

递归:如何从递归函数返回值 1

来自分类Dev

MySQL函数返回错误值

来自分类Dev

函数返回值错误

来自分类Dev

DLookup函数-返回错误的值

来自分类Dev

数学函数返回错误值

来自分类Dev

Python 函数返回错误值

来自分类Dev

在函数中返回返回错误值

来自分类Dev

递归组成员函数返回“对象已处置”错误

来自分类Dev

递归函数的返回语句中的 Ocaml 类型错误

来自分类Dev

递归回文函数是否不断返回默认结果值?

来自分类Dev

Javascript:递归函数返回未定义的现有值

来自分类Dev

PHP递归函数在变量有值时返回null

来自分类Dev

递归函数在Python中不返回任何值