#include <iostream>
bool checkmMultipleOf9UsingBitwise(int n) {
if (n == 0 || n == 9) {
return true;
}
else if (n < 9) {
return false;
}
else {
/*
until n becomes either:
0 or 9 → return true (it's a multiple of 9)
< 9 but not equal to 0 or 9 → return false
*/
return checkmMultipleOf9UsingBitwise((int)(n >> 3) - (int)(n & 7));
}
}
int main()
{
int num = 72; // 8 * 9
if (checkmMultipleOf9UsingBitwise(num)) {
std::cout << "The Number is multiple of 9 \n" << std::endl;
}
else {
std::cout << "The Number is not multiple of 9 \n" << std::endl;
}
}
/*
run:
The Number is multiple of 9
*/