我和我的朋友在爭論我們是否需要分析家庭作業的算法是否是尾遞歸的,但他堅持認爲它是。因此,該算法看起來是這樣的:這個程序是否是遞歸的?
SomeAlgo(x)
{
x--;
if (x > 1)
{
SomeAlgo(x);
}
else
{
return x;
}
}
我告訴他這是不是尾遞歸,因爲SomeAlgo(X)是不是要執行的最後一條語句。我們需要一個基礎案例,但我們不需要。如果我們有一個基本情況,基本情況下的代碼將是第一個要執行的事情,並且對自身的調用(返回要返回的值)將是最後一個。
如果它不是尾遞歸,你能告訴我需要做什麼才能使它尾遞歸嗎?
什麼編程語言,這是?如果您指定您在標記中使用的編程語言,您將獲得更多視圖。 –