Multiple choice

Consider the following program fragment for reversing the digits in a given integer to obtain a new integer.

Let n = d1 d2 ………… dm

int n, rev;
rev = 0;
while (n < 0) {
  rev = rev * 10 + n % 10;
  n = n / 10;
}

The loop invariant condition at the end of the ith iteration is

  1. n = d1d2......dm−i and rev = dm dm−1......dm−i+1

  2. n = dm−i+1.....dm−1 dm or rev = dm−i .....d2d1

  3. n $\ne$ rev
  4. n = d1d2....dm or rev = dm......d2d1

Reveal answer Fill a bubble to check yourself
A Correct answer
Explanation