The following function computes X^Y for positive integers X and Y. int exp(int…

GATE · 2016 · CS · Set 2 · Computer Science & IT

The following function computes X^Y for positive integers X and Y.

int exp(int X, int Y) {
    int res = 1, a = X, b = Y;
    while (b != 0) {
        if (b % 2 == 0) {
            a = a * a;
            b = b / 2;
        } else {
            res = res * a;
            b = b - 1;
        }
    }
    return res;
}

Which one of the following conditions is TRUE before every iteration of the loop?

  1. A.

    X^Y = a^b

  2. B.

    (res ∗ a)^Y = (res ∗ X)^b

  3. C.

    X^Y = res ∗ a^b

  4. D.

    X^Y = (res ∗ a)^b

Attempted by 215 students.

Sign up free to check your answer

Sign up free

Explore the full course: Gate Guidance By Sanchit Sir

Loading lesson…