这是续集这种由挑战阿德南。如果您喜欢这个挑战,那么您也很可能会喜欢另一个挑战。看看这个!
多选题测试包含8个问题,每个问题有4个选择,可能会有答案:BCADBADA
。转换为四个不同的数组,如果当前字母是答案,则为true和false,它将看起来像这样
Q#: 1 2 3 4 5 6 7 8
B C A D B A D A
A: [0, 0, 1, 0, 0, 1, 0, 1]
B: [1, 0, 0, 0, 1, 0, 0, 0]
C: [0, 1, 0, 0, 0, 0, 0, 0]
D: [0, 0, 0, 1, 0, 0, 1, 0]
可以使用一些逻辑来压缩。的选择中的每一个A
,B
,C
并D
可以由两个真/假值表示如下:
A: 1 0
B: 0 1
C: 0 0
D: 1 1
使用此逻辑,我们可以将上面的四个向量压缩为两个:
1 2 3 4 5 6 7 8
B C A D B A D A
[0, 0, 1, 1, 0, 1, 1, 1]
[1, 0, 0, 1, 1, 0, 1, 0]
也就是说,您的测试解决方案很简单:00110111
,10011010
。通过将它们串联起来,我们得到二进制数
0011011110011010
或14234
十进制数。使用此十进制值作弊测试!
挑战
接受N
(包括)范围内的数字[0, 65535]
,并输出带有选择题测试答案的字符串。
测试用例:
14234
BCADBADA
38513
ABBDCAAB
0
CCCCCCCC
120
CBBBBCCC
65535
DDDDDDDD
39253
ABCDABCD
输出可能使用大写或小写字母,但是您不能使用其他符号。
A=10, B=01
,然后C=nor(A,B)
是和D=and(A,B)
。事后看来,反过来可能会更好,但是……现在太晚了……