挑战
对于这个挑战,您应该确定Cantor集中是否有给定的数字。首先,让我们定义Cantor集。
首先,从0到1之间的数字开始。超出此范围的任何数字均不在Cantor集中。现在,让我们将数字分为三个相等的部分:[0,1 / 3],[1 / 3,2 / 3],[2 / 3、1]。不在第一部分和最后一部分范围内的任何数字都不在Cantor集中。现在,对段[0,1 / 3]和[2/3,1]重复此过程。然后,您重复剩余的内容。您会永远这样做。最后,所有剩余的数字都在Cantor集中。这是前六个迭代的图表:
输入值
两个整数x
和y
。
0 < y < 2^15
0 <= x <= y
最大的共同点x
和y
为1,除非x == 0
。
输出量
如果x/y
在Cantor设置中,则为真。
如果x/y
不在Cantor集合中,则为假。
例子
现在,让我们看一下Cantor集中的一些数字示例。
1/3 -> true
它在边界上,并且边界永远不会删除。
1/4 -> true
1/4
永远不会位于细分的中间三分之一,尽管它也永远不会位于边界上。如果遵循它的路径,您实际上会发现它在节的前三分之一和后三分之一之间交替出现。
1/13 -> true
1/13
在第一部分,第一部分和最后一部分之间切换。
1/5 -> false
1/5
落入上图中第三行的第一个空白块,介于1/9和2/9之间。
其他测试用例:
0/4 -> true
3/10 -> true
3/4 -> true
10/13 -> true
1/1 -> true
12/19 -> false
5/17 -> false
3/5 -> false
1/7 -> false
1/2 -> false
您可以使用此代码段尝试其他数字:
目的
字节数最少的人获胜。
x == 0