递归的新手。此代码的输出是79,如何获得此答案?当写下来时,我发现根本无法达到基本情况。 (-3+4) + (2 * -3) = -5 => (-5+4) + (2 * -5) = -11...我对递归或基本代数有基本的误解吗?

int result = negative(-3);

public int negative(int num)
{
    if(num >= 20)
    {
        return -5;
    }
    else
    {
        return negative(num + 4) + 2 * num;
    }
}

public void print()
{
    System.out.println("The final answer is " +result);
}

最佳答案

您的第一种情况不是(-3+4),而是negative(-3+4),即negative(1) +(2 * -3)。如果将negative的第一行更改为

System.out.println(num);


您可以看到数字如何递归地到达您已经给出的输出。

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

10-10 07:11