问题描述
汉诺塔的问题大家都已经很熟悉了,有三个柱子,每个柱子上有一些大小不一的金片,要把金片从 A 柱移动到 C 柱,可以借助 B 柱,请问 n 个金片的情况下,需要最少移动多少次?
输入
输入一个整数 n 代表金片的数量(n≤20)。
输出
一个整数,代表 n 个金片的移动次数。
样例
输入
3
输出
7
编辑代码
语言 C++
代码:
#include <bits/stdc++.h>
#include<string>
#include<algorithm>
using namespace std;
int main(){
long long n,i,a[32767]={};
cin>>n;
a[1]=1;
for(i=2;i<=n;i++){
a[i]=a[i-1]*2+1;
}
cout<<a[n];
}
制作不易,记得一键三连哦!