37 lines
677 B
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;
|
|
}
|