瞭解每個遞歸函數都可以轉換爲迭代版本。有人可以幫我找到這個僞代碼的迭代版本嗎?我試圖優化代碼和遞歸顯然不是要走的路線遞歸到迭代轉換
sub calc (a, b)
{
total = 0;
if(b <= 1)
return 1
if(2*a > CONST)
for i IN (1..CONST)
total += calc(i, b-1) ;
else
for j IN (2*a..CONST)
total += calc(j, b-1) ;
return total;
}
CONST = 100;
print calc (CONST,2000);
感謝您的幫助!
什麼是總數?它是在別處定義還是應該在函數體內初始化? – AlexFoxGill
在體內初始化 – Techmonk
謝謝。另外,也許你可以提供一些樣本輸入和輸出?算法看起來幾乎就像你不需要迭代或遞歸,而只是一個數學公式。 – AlexFoxGill