WAC631.Googol字符串

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Googol字符串

0/10/1 字符串”是一个字符串,其中每个字符都是 0011

有两个操作可以在 0/10/1 字符串上执行:

  • switch:把 11 都变为 0000 都变为 11。例如,100 变为 011
  • reverse:字符串反转。 例如,100 变为 001

考虑这个 0/10/1 字符串的无限序列:

S_0=“”S\_0 = “”

S_1=0S\_1 = “0”

S_2=001S\_2 = “001”

S_3=0010011S\_3 = “0010011”

S_4=001001100011011S\_4 = “001001100011011”

S_N=S_N1+0+switch(reverse(S_N1))S\_N = S\_{N-1} + “0” + switch(reverse(S\_{N-1}))

请你求出S_googolS\_{googol}中的第K个字符,其中googol=10100googol = 10^{100}

输入格式

第一行包含整数 TT,表示共有 TT 组测试数据。

每组数据占一行,包含一个整数 KK

输出格式

每组数据输出一个结果,每个结果占一行。

结果表示为 Case #x: y,其中 xx 是组别编号(从 11 开始),yyS_googolS\_{googol} 中的第 KK 个字符。

数据范围

1T1001 \le T \le 100,

1K10181 \le K \le 10^{18}

Samples

4
1
2
3
10
Case #1: 0
Case #2: 0
Case #3: 1
Case #4: 0

在线编程 IDE

建议全屏模式获得最佳体验