汉诺塔问题是最经典的递推问题之一:
有三个可以放圆盘的柱子,编号为、和。
开始时柱子上套着个圆盘,它们从上到下按照从小到大的顺序排列。
我们的任务是要把这个圆盘移到柱子上,并保持它们的原有顺序不变。
在移动圆盘的过程中,需要遵守以下规则:
小杨在学习了汉诺塔问题后,决定添加一个新规则:
在新规则下,给定圆盘数量,试问最少移动步数是多少?
输入一个正整数,表示圆盘的数量。
输出一个整数,表示在新规则下将个圆盘从移动到所需的最少移动步数。
输入:
2
输出:
7
以下步骤是最佳的(编号为1的是小盘,为2的是大盘):
可以证明没有更少步骤可以完成这个任务。
输入:
3
输出:
21
对于所有数据,
1.0 s
512.0 MB