定义可变参数
def product(args):
sum=1
for n in args:
sum=sumn
return sum
num=(1,2,3,4)
print(product(*num))
递归函数:
def fact(n):
if n==1:
return n
return n*fact(n-1)
print(fact(4))
尾递归函数(return语句不能包含表达式):
def fact_iter(n,product):
if n==1:
return product
return fact_iter(n-1,n*product)
print(fact_iter(4,1))
def fact(n):
return fact_item(n,product)
def fact_iter(n,product):
if n==1:
return product
return fact_iter(n-1,n*product)
print(fact_iter(4,1))
汉诺塔
题目:
请编写move(n, a, b, c)函数,它接收参数n,表示3个柱子A、B、C中第1个柱子A的盘子数量,然后打印出把所有盘子从A借助B移动到C的方法。
总体思路:
从A把(n-1)移动B;
从A把n 移动C;
3)从B把(n-1)移动C
def move(n,a,b,c):
if n==1:
print(a,'-->',c)
else:
move(n-1,a,c,b)
print(a,'-->',c)
move(n-1,b,a,c)
move(3,'a','b','c')