递归

调用函数自身的行为

有一个正确的返回条件


def factorial(n):

if n == 1:

return 1

else:

return n * factorial(n-1)

number = int(input('请输入一个正整数:'))

result = factorial(number)

print('%d 的阶乘为:%d' % (number,result))


def hanoi(n, x, y, z):

if n == 1:

print(x, ' --> ', z)

else:

hanoi(n-1, x, z, y) #将前n-1个盘子从x移动到y上

print(x, ' --> ', z) #将最底下的最后一个盘子从x移动到z上

hanoi(n-1, y, x, z) #将y上的n-1个盘子移动到z上


n = int(input('请输入汉诺的层数:'))

hanoi(n, 'a', 'b', 'c') #调用