第一次周賽貪心思想和漢諾塔補好思路

思路:只需要滿足等分,或者切出一塊大小爲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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章