我已经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