📄 2077.cpp
字号:
#include<iostream>
using namespace std;
int a[21] = {0,2,4};
int a2b(int);
int b2a(int);
int b2c(int);
int c2b(int);
int atob[21] = {0,1};
int btoa[21] = {0,1};
int ctob[21] = {0,1};
int btoc[21] = {0,1};
int c2b(int n)
{
if(ctob[n])
return ctob[n];
ctob[n] = c2b(n-1)+b2a(n-1)+1+a2b(n-1);
return ctob[n];
}
int b2a(int n)
{
if(btoa[n])
return btoa[n];
btoa[n] = b2c(n-1)+1+c2b(n-1)+b2a(n-1);
return btoa[n];
}
int b2c(int n)
{
if(btoc[n])
return btoc[n];
btoc[n] = b2a(n-1) + 1 + a2b(n-1) + b2c(n-1);
return btoc[n];
}
int a2b(int n)
{
if(atob[n])
return atob[n];
atob[n] = a2b(n-1) + b2c(n-1) + 1 + c2b(n-1);
return atob[n];
}
int hanoi(int h)
{
return 2+ a2b(h-1) + b2c(h-1);
}
int main()
{
for(int i = 3;i<=20;i++)
a[i] = hanoi(i);
int n;
cin>>n;
while(cin>>n)
cout<<a[n]<<endl;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -