Bird
Raised Fist0
DSA C#programming~20 mins

Check if Number is Power of Two in DSA C# - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Power of Two Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this code snippet?
Given the following C# code, what will be printed to the console?
DSA C#
int n = 16;
bool isPowerOfTwo = (n > 0) && ((n & (n - 1)) == 0);
Console.WriteLine(isPowerOfTwo);
AFalse
B1
C0
DTrue
Attempts:
2 left
💡 Hint
Check how bitwise AND works between n and n-1 for powers of two.
❓ Predict Output
intermediate
2:00remaining
What is the output when n = 0?
Consider the same code but with n = 0. What will be printed?
DSA C#
int n = 0;
bool isPowerOfTwo = (n > 0) && ((n & (n - 1)) == 0);
Console.WriteLine(isPowerOfTwo);
AException
BFalse
C0
DTrue
Attempts:
2 left
💡 Hint
Remember that zero is not a power of two.
🔧 Debug
advanced
2:00remaining
Why does this code fail for negative numbers?
What is the output of this code when n = -8? Explain why.
DSA C#
int n = -8;
bool isPowerOfTwo = (n > 0) && ((n & (n - 1)) == 0);
Console.WriteLine(isPowerOfTwo);
AFalse
BTrue
CException
DUndefined behavior
Attempts:
2 left
💡 Hint
Check the first condition and how negative numbers behave with bitwise operations.
🧠 Conceptual
advanced
2:00remaining
Which property of powers of two does the bitwise check use?
The expression (n & (n - 1)) == 0 is used to check if n is a power of two. What property does this rely on?
APowers of two have alternating bits set
BPowers of two are always even numbers
CPowers of two have only one bit set in binary representation
DPowers of two are prime numbers
Attempts:
2 left
💡 Hint
Think about how binary numbers look for powers of two.
❓ Predict Output
expert
2:00remaining
What is the output of this recursive function for n = 32?
Analyze the following C# code and determine what it prints when n = 32.
DSA C#
bool IsPowerOfTwo(int n) {
    if (n == 1) return true;
    if (n == 0 || n % 2 != 0) return false;
    return IsPowerOfTwo(n / 2);
}

int n = 32;
Console.WriteLine(IsPowerOfTwo(n));
ATrue
BFalse
CStackOverflowException
DCompile error
Attempts:
2 left
💡 Hint
Trace the recursive calls dividing n by 2 each time.

Practice

(1/5)
1. Which of the following statements correctly describes a number that is a power of two?
easy
A. It is divisible by 3.
B. It is always an odd number.
C. It has all bits set to 1 in its binary form.
D. It has exactly one bit set to 1 in its binary form.

Solution

  1. Step 1: Understand binary representation of powers of two

    A power of two in binary has exactly one '1' bit and the rest are '0's, e.g., 4 is 100.
  2. Step 2: Check other options for correctness

    Odd numbers and divisibility by 3 do not define powers of two. Having all bits set to 1 means numbers like 7 (111), not powers of two.
  3. Final Answer:

    It has exactly one bit set to 1 in its binary form. -> Option D
  4. Quick Check:

    Power of two = one '1' bit [OK]
Hint: Power of two has only one '1' bit in binary [OK]
Common Mistakes:
  • Thinking powers of two are always odd
  • Confusing all bits set to 1 with power of two
  • Assuming divisibility by 3 means power of two
2. Which of the following C# expressions correctly checks if an integer n is a power of two?
easy
A. return (n & (n + 1)) == 0;
B. return (n | (n - 1)) == 0;
C. return (n & (n - 1)) == 0 && n > 0;
D. return (n ^ (n - 1)) == 0;

Solution

  1. Step 1: Understand bitwise check for power of two

    For a power of two, n & (n - 1) clears the only set bit, resulting in 0. Also, n must be positive.
  2. Step 2: Analyze other expressions

    Other options use incorrect bitwise operations that do not correctly identify powers of two.
  3. Final Answer:

    return (n & (n - 1)) == 0 && n > 0; -> Option C
  4. Quick Check:

    Bitwise AND with n-1 equals zero means power of two [OK]
Hint: Use (n & (n - 1)) == 0 and n > 0 to check power of two [OK]
Common Mistakes:
  • Using OR or XOR instead of AND
  • Not checking if n is positive
  • Using n + 1 instead of n - 1
3. What is the output of the following C# code?
int n = 16;
bool result = (n & (n - 1)) == 0 && n > 0;
Console.WriteLine(result);
medium
A. True
B. False
C. Compile-time error
D. Runtime exception

Solution

  1. Step 1: Calculate bitwise AND of n and n-1

    For n=16 (binary 10000), n-1=15 (binary 01111). Bitwise AND is 0.
  2. Step 2: Check if result is zero and n is positive

    Since (n & (n - 1)) == 0 and n > 0, the expression is true.
  3. Final Answer:

    True -> Option A
  4. Quick Check:

    16 is power of two, so output is True [OK]
Hint: If n & (n-1) == 0 and n>0, output is True [OK]
Common Mistakes:
  • Miscomputing bitwise AND
  • Ignoring n > 0 condition
  • Confusing True and False outputs
4. The following code is intended to check if n is a power of two. What is the error?
bool IsPowerOfTwo(int n) {
    return (n & (n - 1)) == 0;
}
medium
A. The expression should be (n | (n - 1)) == 0 instead.
B. It does not check if n is positive, so zero or negative numbers return true incorrectly.
C. The function should return an integer, not a boolean.
D. The bitwise AND operator is used incorrectly; it should be OR.

Solution

  1. Step 1: Analyze the bitwise condition

    The expression (n & (n - 1)) == 0 is true for powers of two but also for zero.
  2. Step 2: Identify missing condition

    Zero and negative numbers are not powers of two, so the function must check n > 0.
  3. Final Answer:

    It does not check if n is positive, so zero or negative numbers return true incorrectly. -> Option B
  4. Quick Check:

    Check n > 0 to avoid false positives [OK]
Hint: Always check n > 0 when using bitwise power of two check [OK]
Common Mistakes:
  • Omitting n > 0 check
  • Using wrong bitwise operator
  • Returning wrong data type
5. You want to write a function that returns the smallest power of two greater than or equal to a given positive integer n. Which approach correctly achieves this in C#?
hard
A. Use a loop doubling a variable starting at 1 until it is >= n.
B. Return n & (n - 1) to get the smallest power of two.
C. Return n | (n - 1) to get the smallest power of two.
D. Return n ^ (n - 1) to get the smallest power of two.

Solution

  1. Step 1: Understand the problem requirement

    We need the smallest power of two >= n, so start from 1 and double until reaching or exceeding n.
  2. Step 2: Analyze other options

    Bitwise operations like AND, OR, XOR with n-1 do not produce the smallest power of two >= n.
  3. Final Answer:

    Use a loop doubling a variable starting at 1 until it is >= n. -> Option A
  4. Quick Check:

    Doubling loop finds smallest power of two >= n [OK]
Hint: Double from 1 until >= n to find smallest power of two [OK]
Common Mistakes:
  • Using bitwise AND/OR/XOR incorrectly for this task
  • Not handling n less than 1
  • Assuming bitwise ops give next power of two
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard