递归-汉诺塔

天才程序员用递归

def test(n):

    if n == 1:

        return 1

    else:

        return n*test(n-1)

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

result = test(number)

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


下面是汉诺塔的实现

def hanoi (n,a,b,c):

    if n == 1:

        print(a,'-->',c)    如果只有最后一个盘子,则直接从a到c

    else:

        hanoi(n-1,a,c,b)    现将前n-1个盘子移动到b

        print(a,'-->',c)如果只有最后一个盘子,则直接从a到c

        hanoi(n-1,b,a,c) 用递归方法将剩下的盘子再移动到C

n=int(input('汉诺塔层数\n'))

hanoi(n,'第一根','第二根','第三根')

你可能感兴趣的:(递归-汉诺塔)