Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
39
Task/Population-count/C/population-count-1.c
Normal file
39
Task/Population-count/C/population-count-1.c
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
{
|
||||
unsigned long long n = 1;
|
||||
for (int i = 0; i < 30; i++) {
|
||||
// __builtin_popcount() for unsigned int
|
||||
// __builtin_popcountl() for unsigned long
|
||||
// __builtin_popcountll() for unsigned long long
|
||||
printf("%d ", __builtin_popcountll(n));
|
||||
n *= 3;
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
int od[30];
|
||||
int ne = 0, no = 0;
|
||||
printf("evil : ");
|
||||
for (int n = 0; ne+no < 60; n++) {
|
||||
if ((__builtin_popcount(n) & 1) == 0) {
|
||||
if (ne < 30) {
|
||||
printf("%d ", n);
|
||||
ne++;
|
||||
}
|
||||
} else {
|
||||
if (no < 30) {
|
||||
od[no++] = n;
|
||||
}
|
||||
}
|
||||
}
|
||||
printf("\n");
|
||||
printf("odious: ");
|
||||
for (int i = 0; i < 30; i++) {
|
||||
printf("%d ", od[i]);
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
16
Task/Population-count/C/population-count-2.c
Normal file
16
Task/Population-count/C/population-count-2.c
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#if defined(__POPCNT__) && defined(__GNUC__) && (__GNUC__> 4 || (__GNUC__== 4 && __GNUC_MINOR__> 1))
|
||||
#define HAVE_BUILTIN_POPCOUNTLL
|
||||
#endif
|
||||
static uint64_t bitcount64(uint64_t b) {
|
||||
b -= (b >> 1) & 0x5555555555555555;
|
||||
b = (b & 0x3333333333333333) + ((b >> 2) & 0x3333333333333333);
|
||||
b = (b + (b >> 4)) & 0x0f0f0f0f0f0f0f0f;
|
||||
return (b * 0x0101010101010101) >> 56;
|
||||
}
|
||||
/* For 32-bit, an 8-bit table may or may not be a little faster */
|
||||
static uint32_t bitcount32(uint32_t b) {
|
||||
b -= (b >> 1) & 0x55555555;
|
||||
b = (b & 0x33333333) + ((b >> 2) & 0x33333333);
|
||||
b = (b + (b >> 4)) & 0x0f0f0f0f;
|
||||
return (b * 0x01010101) >> 24;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue