**
航电oj:汉诺塔V
**
#题目描述
#给你汉诺塔的层数,目标层数 问你当汉诺塔完成的时候目标成数移动了多少次
#最大的一层一次 在这上一层乘二 有这个规律
#知识点
递归
#代码
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,t,m;
long long int math(int n,int m)///n 成数 m 目标成数 最大的那一成肯定只动一次 第二大的动两次 3大 4次
{
if(n == m)//比目标成还小的成数动时 目标成大 不动了
{
return 1;
}
else
{
return math(n-1,m)*2;//从大的成向小的成递增
}
}
int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
printf("%lld\n",math(n,m));
}
}
#总结
看着汉诺塔不是递归是数学问题