簡體   English   中英

Java輸出的遞歸方法

[英]Java output of a recursive method

遞歸的新手。 此代碼的輸出是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);

您可以看到數字如何遞歸地到達您已經給出的輸出。

嘗試自己寫下來:

如果函數發送的數字大於或等於20,則返回-5

否則,它返回2 * num +(再次使用num + 4本身)

我們得到:

(2 * -3)+(2 * 1)+(2 * 5)+(2 * 9)+(2 * 13)+(2 * 17)+(-5)

這樣做,您會得到74

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM