edited by
485 views
2 votes
2 votes

The below question is based on the following program. In the program, we assume that integer division returns only the quotient. For example $7/3$ returns $2$ since $2$ is the quotient and $1$ is the remainder.

mystery(a,b){
        if (b == 0) return a;
        if (a < b) return mystery(b,a);
        if (eo(a,b) == 0){
             return(2*mystery(a/2,b/2));
    }
    if (eo(a,b) == 1){
        return(mystery(a,b/2));
    }
    if (eo(a,b) == 2){
        return(mystery(a/2,b));
    }
    if (eo(a,b) == 3){
        return (mystery((a-b)/2,b));
    }
}
eo(a,b){
if ((a/2)*2 == a and (b/2)*2 == b) return 0; end;
if ((a/2)*2 < a and (b/2)*2 == b) return 1; end;
if ((a/2)*2 == a and (b/2)*2 < b) return 2; end;
return 3;
}

$\text{mystery}(75,210)$ returns

  1. $2$
  2. $6$
  3. $10$
  4. $15$
edited by

1 Answer

Related questions

12 votes
12 votes
4 answers
4
go_editor asked May 27, 2016
1,449 views
Let $A$ be an array of $n$ integers, sorted so that $A \leq A \leq \dots A[n]$. Suppose you are given a number $x$ and you wish to find out if there exist indices $k$ a...