Python 代码

定义可变参数
def product(args):
sum=1
for n in args:
sum=sum
n
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的方法。
总体思路:

  1. 从A把(n-1)移动B;
  2. 从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')

你可能感兴趣的:(Python 代码)