1.A题考察的是异或的知识点
我们知道异或是转化为二进制后每一位数异或1取反,异或0不变,因此有如下性质:a^a==0;
a^0==a;
二进制最后一位是1则为奇数,是0则为偶数。 题面意思是给一个整数n,然后让你写出一组能够满足如下等式的a,b,c的值 a^b+b^c+c^a=n
第一种做法:这时候我们可以找到最简单的一组数,令a=0,b=0,c=x,则有0^0+0^x+x^0=2*x因此就有2*x=n,可以算出x=n/2;意味着只有n是偶数的时候才有解。
所以当n是奇数时输出-1,当n时偶数时输出0,0,n/2;
第二种做法:(我们也可以让a,b,c分别取0,0,0或者1,1,1或者1,0,0或者1,0,1这四种情况,分别带入验证会发现得到的数字n都是偶数,从这里也可以判断n只能取偶数才有解)
以下附上代码: