Task
Write a program that inputs a non-negative integer n
(but store it as int
) and outputs the binary digits of n
in the correct order (i.e., starting with the most significant bit). Do not output the leading zeros or the sign.
Hint: In order to find the largest integer k
such that 2^k \leq x
, you can utilize that k
is the smallest integer such that 2^k > \frac{x}{2}
. This observation is particularly useful to avoid an overflow for the expression 2^k
when searching for the most significant bit to represent x
.
Restrictions:
- Libraries: only the iostream standard library header is allowed; using arrays, string or cmath is not permitted.
- Operators: you may not use bitshift operators to manipulate the numbers.
Warning: The autograder does not catch if you do anything that's disallowed in the "Restrictions" section above, but you will receive 0 points when your TA corrects and catches this.