Bird
Raised Fist0
DSA C#programming~10 mins

Check if Number is Power of Two in DSA C# - Interactive Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to check if a number is a power of two using bitwise AND.

DSA C#
bool IsPowerOfTwo(int n) {
    return n > 0 && (n & [1]) == 0;
}
Drag options to blanks, or click blank then click option'
An - 1
Bn + 1
C1
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Using n + 1 instead of n - 1
Checking only if n is greater than zero without bitwise check
2fill in blank
medium

Complete the code to check if a number is a power of two using a loop.

DSA C#
bool IsPowerOfTwo(int n) {
    if (n <= 0) return false;
    while (n != 1) {
        if (n % [1] != 0) return false;
        n /= 2;
    }
    return true;
}
Drag options to blanks, or click blank then click option'
A5
B2
C4
D3
Attempts:
3 left
💡 Hint
Common Mistakes
Using modulo 3 or 4 instead of 2
Not checking if n is less than or equal to zero
3fill in blank
hard

Fix the error in the code to correctly check if a number is a power of two.

DSA C#
bool IsPowerOfTwo(int n) {
    return n > 0 && (n & [1]) == 0;
}
Drag options to blanks, or click blank then click option'
A1
Bn + 1
C0
Dn - 1
Attempts:
3 left
💡 Hint
Common Mistakes
Comparing the bitwise AND result to n instead of zero
Using n + 1 instead of n - 1
4fill in blank
hard

Fill both blanks to create a dictionary comprehension that maps numbers to True if they are powers of two.

DSA C#
var powers = new Dictionary<int, bool> {
    { [1], [2] }
};
Drag options to blanks, or click blank then click option'
A1
Btrue
Cfalse
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Mapping 0 to true
Using false instead of true for powers of two
5fill in blank
hard

Fill all three blanks to create a LINQ expression that filters powers of two from a list.

DSA C#
var powersOfTwo = numbers.Where(n => n > 0 && (n & [1]) == [2]).ToList();

// Print results
powersOfTwo.ForEach(n => Console.WriteLine(n[3]));
Drag options to blanks, or click blank then click option'
An - 1
B0
D + " is power of two"
Attempts:
3 left
💡 Hint
Common Mistakes
Using n + 1 instead of n - 1
Printing numbers without message

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