汉诺塔问题 A

描述
汉诺塔是学习”递归”的经典入门案例,该案例来源于真实故事。
在世界某个地方有个很虔诚的宗教组织,其中僧侣维护者一项神圣任务:保持宇宙的时间(好伟大啊….)。在时间的最开始(那时候有僧侣吗?),僧侣在平台上竖立了三个垂直杆,在最左侧杆上有64个不同半径金色同心圆盘,直径较大的圆盘堆放在下方,形成了金字塔形状的外观,僧侣们的任务是将所有圆盘从最左侧杆子移动到最右侧杆子上,这个宗教认为当僧侣们完成任务时,万事万物将会化为乌有,宇宙将结束(僧侣们内心该是怎样的(>_<))。为了保持神圣的顺序,僧侣们移动圆盘需要遵从特定的规则:一次只能移动一个盘子、盘子只能在3个标杆之间移动、更大的盘子不能放在更小的盘子上面。
下图是汉诺塔问题的示例图。其中3个杠杆分别用A、B和C表示。
这里写图片描述

汉诺塔是一个数学难题,其问题描述为如何将所有圆盘从A移动到C,请采用递归方法解决这个难题,要求如下:
用户输入汉诺塔的层数,输入是一个整数,不一定是64;输出完成任务需要从A到C移动的步数总和。
此题目是OJ类型,请注意:
输入使用input(“”)获得,不要增加提示信息,输出与要求严格一致。

测试用例:
输入:
2
输出:
3

解析:百度一下C码的写法再转成py

floor=int(input(""))
def Count(num):
    if num==1:
        return 1
    else:
        return 1+Count(num-1)*2
print(Count(floor))

猜你喜欢

转载自blog.csdn.net/qq_38597315/article/details/79194215