对每一个数不断除以 222:
x % 2
x /= 2
所有数字处理完后,输出总数 ans 和 ans % 2。
ans
ans % 2
也可以使用位运算 x & 1 和 x >>= 1,原理相同。
x & 1
x >>= 1
每次取模得到当前数的一位二进制数码,整除 222 后转向下一位,因此循环恰好统计该数所有的 1。对全部输入累加后得到总数 SSS,而 S mod 2S\bmod2Smod2 正好按照题意给出校验码。
1
每个数最多有 888 个二进制位:
使用您的 椰子OJ CoconutOJ 通用账户