我将尝试理解下面这个Python函数:
def factorial(i):
if not hasattr(factorial, 'lstFactorial'):
factorial.lstFactorial = [None] * 1000
if factorial.lstFactorial[i] is None:
iProduct = 1
for iFactor in xrange(1, i+1):
iProduct *= iFactor
factorial.lstFactorial[i] = iProduct
return factorial.lstFactorial[i]
将会产生与C#中等效的结果:
long factorial(long n)
{
return n <= 1 ? 1 : n * factorial(n-1);
}
当值小于或等于12时。
我对Python一无所知,但刚刚将一些Python代码转换为C#。这是唯一一个我没有完全理解的函数。