分苹果
分苹果
有A,B两个同学想要分苹果。A的想法是使用二进制进行,1 + 1相加不进一位,如(9 + 5 = 1001 +101 = 12)。B同学的想法是使用十进制进行,并且进一位。 会输入两组数据,一组是苹果总数,一组分别是每个苹果的重量。如果让B同学在满足A同学的情况下获取到苹果的总重量且返回,如果不能则返回-1。
输入
3
3 5 6
返回
11
备注:按照A同学的想法 5 + 6 = 3 (101 + 110 = 010)
思路:
对于 a 来说是平分
5 + 6 = (101 + 110 = 010) = 3
对于 b 来说 5 + 6 = (101 + 110) = 1011 = 11
1,如果最终有解,那么所有数字的异或结果为0(两个相同数字异或是0),最终答案就是 所有数字的十进制和,减去这些数字里的最小值就是了。
2,如果无解,那么所有数字的异或结果非零,直接返回-1
1 |
|