高斯整数是形式的复数,a+bi
其中a
和b
都是整数。在基数-1 + i中,可以使用数字0
和唯一地表示所有高斯整数1
,而无需使用符号来表示符号。
例如,1100
以-1 + i为基数代表十进制数字2,因为
1*(-1+i)^3 + 1*(-1+i)^2 + 0*(-1+i)^1 + 0*(-1+i)^0
= (2+2i) + (-2i) + 0 + 0
= 2
输入将是使用数字表示的以-1 + i为基数的两个高斯整数01
。可以采用以下形式之一:
- 两个独立的数字字符串,
- 两个十进制整数,其中包括
01
代表基数-1 + i的数字(例如1100
,基数-1 + i中的2表示), - 代表基数-1 + i的两个二进制整数(例如,十进制
12
或0b1100
基数-1 + i中的2) - 单个字符串由单个非字母数字分隔符分隔两个数字字符串/二进制整数(例如
1100 1100
或12,12
2 + 2)
输出两个高斯整数的和,也以-1 + i为基数,并用数字表示01
(以允许输入的一种格式,不一定是相同的选择)。输出允许包含有限数量的前导零。
输入最多30位数字的函数或程序必须在2秒内终止。
其他说明
- 您可以假定输入不包含无关的前导零。对于0的特殊情况,可以选择一个
0
或空字符串作为表示形式。
测试用例
0, 0 => 0 # 0 + 0 = 0
0, 1 => 1 # 0 + 1 = 1
1, 1 => 1100 # 1 + 1 = 2
1100, 1100 => 111010000 # 2 + 2 = 4
1101, 1101 => 111011100 # 3 + 3 = 6
110111001100, 1110011011100 => 0 # 42 + (-42) = 0
11, 111 => 0 # i + (-i) = 0
11, 110 => 11101 # i + (-1-i) = -1
10101, 11011 => 10010 # (-3-2i) + (-2+3i) = (-5+i)
1010100101, 111101 => 1110100000100 # (-19+2i) + (3-4i) = (-16-2i)
更长的测试用例:
11011011010110101110010001001, 111100010100101001001010010101 => 0
111111111111111111111111111111, 111111111111111111111111111111 => 100100100100100100100100100100
101101110111011101110111011101, 101101110111011101110111011101 => 11101001010001000100010001000100011100
100100010101001101010110101010, 100010011101001011111110101000 => 110000110010101100001100111100010
-1+i
到i-1
的称号。