- 论坛徽章:
- 0
|
回复 #6 yjphhw 的帖子
阶乘尾递归的实现:
版本1:
def factor(count,n,value):
if count==n:
return value
else:
count+=1
value = value*count
return factor(count,n,value)
def fact(n):
return factor(1,n,1)
print (fact(5))
版本2:
def fact(n):
factor =lambda count,n,value:value if count==n else factor(count+1,n,(count+1)*value)
return factor(1,n,1)
print (fact(5))
版本3:
print ((lambda self,count,n,value:value if count==n else self(self,count+1,n,(count+1)*value))((lambda self,count,n,value:value if count==n else self(self,count+1,n,(count+1)*value)),1,5,1))
希望有助于你对照理解 |
|