nyoj 63 小猴子下落 思维

nyoj 63 小猴子下落

题目链接:

http://acm.nyist.net/JudgeOnline/problem.php?pid=63

思路:

不需要用指针创建二叉树,也不需要用数组来模拟二叉树,空间上更浪费
这里只需要知道当最后一只猴子走的时候,开关是什么状态即可
规则:奇数向左走,偶数向右走

代码:

#include <iostream>
#include <stdio.h>
using namespace std;
typedef long long ll;
int main() {
    int d,num,id;
    while(~scanf("%d %d",&d,&num)&&d&&num) {
        d--;
        id=1;
        while(d--) {
            if(num&1) id=id<<1,num=(num>>1)+1;
            else id=id<<1|1,num=num>>1;
        }
        printf("%d\n",id);
    }
    return 0;
}
posted @ 2017-11-28 11:04  lemonsbiscuit  阅读(200)  评论(0编辑  收藏  举报