天天看點

【數組二叉樹】UVA - 679 Dropping Balls

Problem Description

每行輸入深度d和小球的數量num,一個小球一個小球的下落,經過小球數為偶數開關關閉,朝左邊走,奇數開關打開,朝右邊走,問你最後一個小球下落在下标多少
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n, d, num;
    while(~scanf("%d", &n))
    {
        if(n == -) break;
        while(n--)
        {
            scanf("%d %d", &d, &num);
            int k = ;
            while(k <= ( << d) - )
            {
                if(num %  == )//如果是奇數往左走
                {
                    k = k * ;
                    num = num /  + ;//走到的點,經過球的數量變為
                }
                else//偶數往右走
                {
                    k = k *  + ;
                    num = num / ;//走到的點,經過球的數量變為
                }
            }
            printf("%d\n", k / );
        }
    }
    return ;
}