最近很不在状态,可能是每天做的题少了,事情比较多,赶紧结束课程设计然后开始正式训练,前几天我家附近有一个北京回来的感染者,很慌。
今天学到一个小技巧,判断一个数有无奇数因子。 i f ( ( n & ( n − 1 ) ) = = 0 if((n \& (n - 1)) == 0 if((n&(n1))==0
一个偶数 n n n 没有奇数因子的话, 那它一直除以 2 2 2 所得的数都是偶数(直到除成 1 1 1 ), 说明这个偶数一定可以写成 2 k ( k > 0 ) 2^k (k > 0) 2k(k>0), 二进制形式就是只有一个最高位的 1 1 1 , n & ( n − 1 ) n\&(n-1) n&(n1) 就显然是 0 0 0