我已經memoized在C因子的功能如下:爲什麼這個memoized函數返回錯誤的答案!
int fact(int n)
{
int temp;
int lookup_table[n];
if(lookup_table[n])
return lookup_table[n];
else{
if(n == 0 || n == 1)
return 1;
else
temp = n * fact(n-1);
lookup_table[n] = temp;
return temp;
}
}
但後來wehn我輸入n = 5
,它。OUPUTS
-1! = 134514064
有人可以解釋發生了什麼?
+1,他應該將其標記爲靜態。但是,這不是它得到錯誤答案的原因。 (他還需要使用常數而不是'n') – alternative 2011-04-24 12:23:21