这题还是很简单啊,一看就知道用mod(2)mod(2)mod(2)来判断,但是,栖月觉得这样太没意思了,所以我这次用了位运算的方法,大家都知道,计算机是读取二进制的,那它对于二进制的计算,时间也会比十进制大幅提升(其实没多少),那怎么用位运算判断呢?来看一下按位与的使用方法
按位与在C++中用&来表示,不要打成逻辑与OK?那我们要用它,肯定要先知道怎么用吧?那栖月在这里画了一幅图,你们可以看一下
(这个图中的数字都是二进制下的哦),总结一下就是除了两个数都为1的情况运算后结果为1,其余情况都为0
大家知道一个偶数的二进制表示数从右往左第一位一定是0,因为将二进制转化为十进制需要用1去乘不同的位权,而所有位权(二进制下)都是2的整数次幂,所以相加的数一定是偶数,而第一位的数不用乘,可以直接加,因为2^0等于1,相当于这个数乘1,如果它是奇数,那所得到的十进制数绝对会是一个偶数,那我们可以利用这一点,由于按位与运算中只有1&1结果为1,那我们可以得出如果得到的结果为1(truetruetrue),那这个数绝对是一个偶数,因为它的二进制数第一位为1,那就可以输出“oddoddodd”,如果不是(结果为falsefalsefalse),那也就证明了它是一个偶数,输出“eveneveneven”
最后上代码