4-variable-simplifier/spikes/quadrant-or-1.c

37 lines
677 B
C

#include <stdio.h>
#include <assert.h>
void search(
int mask,
int ai, int bi,
int findme)
{
if (mask)
{
if (findme & mask)
{
search(mask >> 1, ai, bi | mask, findme);
search(mask >> 1, ai | mask, bi, findme);
search(mask >> 1, ai | mask, bi | mask, findme);
}
else
{
search(mask >> 1, ai, bi, findme);
}
}
else
{
assert((ai | bi) == findme);
printf("0b%04b | 0b%04b == 0b%04b "
"(%2i | %2i == %2i)\n", ai, bi, findme, ai, bi, findme);
}
}
int main()
{
search(0b1000, 0, 0, 11);
return 0;
}