我写了memoized一个用C计算数字因子的代码.但是在提供输入时n=3它会将输出视为6! = 134513904.可以请某人解释出现了什么问题?
int fact(int n)
{
int temp;
static int lookup_table[100];
if(lookup_table[n])
return lookup_table[n];
else if(n == 0 )
{
lookup_table[0]= 1;
return 1;
}
else
{
temp = n * fact(n-1);
lookup_table[n] = temp;
return temp;
}
}
Run Code Online (Sandbox Code Playgroud)