SP12824 PBBN2 - Print Big Binary Numbers
题目描述
对于某些问题,可能会产生非常大的二进制数作为答案。为了验证计算结果,可以要求计算这些数字的各位数字之和。如果基数较小,则答案也相对较小,但如果基数较大,结果可能会不同。
XerK 希望避免使用预先计算的结果,并希望通过计算一个大数 $N$ 来验证你的计算是否正确。这里有一个相关的计算大数的题目。你还可以查看一个[没有语言限制的教程版](http://www.spoj.com/problems/PBBN1/)。
定义函数 CHK(N, B):输入包括一个以二进制表示的巨数 $N$ 和一个 $2$ 的幂 $B$。当将 $N$ 视为以 $B$ 为基数的数时,输出其数字之和。
例如,当 $B = 2^8$ 时,$12345678 = 78 + 97 \times B + 188 \times B^2$,因此 $CHK(12345678, B) = 78 + 97 + 188$。
这个计算过程可以通过少量的按位与、位移和加法运算实现。
输入格式
第一行输入一个整数 $T$,表示测试用例的数量。接下来的 $T$ 行中,每行包含四个整数 $A, B, C, D$,以十进制表示。
输出格式
对于每个测试用例:
- 计算 $N = (A^B) \text{ XOR } (C^D)$。
- 输出 $CHK(N, 2^{16384})$ 的结果,作为十进制数。
说明/提示
无
**本翻译由 AI 自动生成**