二进制中的1有奇数个还是偶数个
实现自Matrix67!
//二进制中的1有奇数个还是偶数个
//实现一
#include <stdio.h>
int main() {
int n;
while (scanf("%d", &n) != EOF) {
int c = 0;
while (n) {
c += n & 1;
n >>= 1;
}
if (c & 1) printf ("奇数个\n");
else printf ("偶数个\n");
}
return 0;
}
//实现二
//分治思想
#include <stdio.h>
int main() {
int n;
while (scanf("%d", &n) != EOF) {
n = n ^ (n >> 1);
n = n ^ (n >> 2);
n = n ^ (n >> 4);
n = n ^ (n >> 8);
n = n ^ (n >> 16);
if (n & 1) printf ("奇数个\n");
else printf ("偶数个\n");
}
return 0;
}