#P1392. Ouroboros Snake
Ouroboros Snake
题目描述(中文版)
描述
Ouroboros(衔尾蛇)是古埃及神话中的一条蛇,它用嘴咬住自己的尾巴并不断吞噬自己。
Ouroboros数 是指具有以下特性的位二进制数:它们能够"生成"从到的所有数字。生成规则如下:给定一个Ouroboros数,我们将其位二进制数首尾相连形成一个环形。然后,从这个环中每次取位连续比特(每次起始位置向后移动一位),共可得到个不同的位二进制数。这样的环形结构称为阶Ouroboros环。本题我们只考虑每组中最小的Ouroboros数。
示例:
当时,存在四个Ouroboros数:、、和。其中最小的数是。其Ouroboros环如下:
函数定义
函数计算阶最小Ouroboros数的环中第个数字。您的程序需要实现该函数。
输入输出格式
输入
包含多个测试用例。每个测试用例为一行,包含两个整数和(,)。输入以两个结束(此行不处理)。
输出
对每个测试用例,单独一行输出。
示例
输入样例 1
2 0
2 1
2 2
2 3
0 0
输出样例 1
0
1
3
2
来源
2000年中欧地区竞赛