这个是普通版本的汉诺塔:)
它的递推式为:
a[1] = 1;
a[n] = a[n-1] * 2 + 1;
这题求特定盘子的移动个数,很显然,第n个1次,而n-1个为的2倍。
从递推式可以看出,从下往上,次数*2(递推式+1表示把第n个移动到c)
又水一题~
#include <iostream>
using namespace std;
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n,num;
scanf("%d%d",&n,&num);
__int64 ans=1;
for(int i=n;i>num;i--)
ans*=2;
printf("%I64d\n",ans);
}
}