Home » Programming & Data Structure » Programming and data structure miscellaneous » Question

Programming and data structure miscellaneous

Programming & Data Structure

  1. The following function computes XY 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. XY = ab
    2. (res*a)Y = (res*X)b
    3. XY = res*ab
    4. XY = (res*a)b
Correct Option: C

Before Iteration 1: X^Y= 64 res * (a^b) = 64
Before Iteration 2: X^Y= 64 res * (a^b) = 64
Before Iteration 3: X^Y= 64 res * (a^b) = 64
Hence, option (c) is verify.



Your comments will be displayed only after manual approval.