思路:只需要满足等分,或者切出一块大小为2的就可以
1#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
while(~scanf("%d", &n))
{
if((n % 2 == 0) && (n != 2))
{
printf("YES\n");
}
else
{
printf("NO\n");
}
}
return 0;
}
2思路:画出三个模块寻找规律,易知道n与m相差的值乘上2即为该位置所需要移动的次数。
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
LL F(int n, int m)
{
if(n == m)
{
return 1;
}
return F(n-1, m) * 2;
}
int main()
{
int t;
scanf("%d", &t);
while(t--)
{
int n, m;
scanf("%d%d", &n, &m);
printf("%lld\n", F(n, m));
}
return 0;
}