汉诺塔3(递推)
题目链接
题意:在原汉诺塔的原型下加上一个限制条件:每次盘子只能移动到相邻的柱子上。求n个盘子移动次数。
解法:设将n个盘子从A柱移动到C柱移动盘子次数为a[n],将上面n-1个盘子看成一个整体。
1、将n-1个盘子从A柱移动到C柱:a[n-1]
2、将大盘子从A柱移动到B柱:1
3、将n-1个盘子从C柱移动到A柱:a[n-1]
4、将大盘子从B柱移动到C柱:1
5、将n-1个盘子从A柱移动到C柱:a[n-1]
可得递推式:a[n] = 3*a[n-1] + 2 .
dp[1] = 2 ;
dp[i] = 3*dp[i-1] + 2;