考虑把n-1个移动到c盘,然后把n移动到b,再把n-1个移动到a,把n移动到c,再把n-1个移动到c。
递推公式 F[n]=3*F[n-1]+2;
AC代码:
#include<cstdio>
const int maxn=36;
long long ans[maxn];
void solve(){
ans[0]=0;
ans[1]=2;
for(int i=2;i<=35;++i){
ans[i]=ans[i-1]*3+2;
}
}
int main(){
solve();
int n;
while(scanf("%d",&n)==1){
printf("%lld\n",ans[n]);
}
return 0;
}
如有不当之处欢迎指出!