🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 思路: 汉诺塔的规律,是将多层结构简化为(n-1)层和n层, 当n=1时,移动次数为1; 当n=2时,移动次数为2*1+1=3; 当n=3时,移动次数为2*3+1=7; 当n=4时,移动次数为2*7+1=15; 当n=5时,移动次数为2*15+1=31。 由此得出规律,当前层移动次数=2*上一层移动次数+1。 因此可以使用递归的方式计算出第n层的移动次数 * 代码 ``` m=1 n=50 def cal(m): m=2*m+1 return m for i in range(2,n+1): m=cal(m) print(i,m) ``` * 结果 ``` 50 1125899906842623 ```