汉诺塔问题求解挪动次数
时间限制:1秒 内存限制:128M
题目描述
Hanoi塔由n个大小不同的圆盘和三根木柱a,b,c组成。开始时,这n个圆盘由大到小依次套在a柱上,如图所示。
要求把a柱上n个圆盘按下述规则移到c柱上:
(1)一次只能移一个圆盘;
(2)圆盘只能在三个柱上存放;
(3)在移动过程中,不允许大盘压小盘。
问将这n个盘子从a柱移动到c柱上,最少需要移动多少次盘子?
输入描述
一个正整数n。n≤100。
输出描述
一个正整数,代表将A柱子上N个盘子搬移到C柱去需要的最小挪动次数。
样例
输入
3
输出
7
#include<cmath>
#include<cstdio>
#include<string>
#include<iomanip>
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int n;
cin>>n;
cout<<pow(2,n)-1;
return 0;
}