1: // Created by Frank M. Carrano and Tim Henry.
2: // Copyright (c) 2013 __Pearson Education__. All rights reserved.
4: int search(int first, int last, int n);
5: int mystery(int n);
7: int main()
8: {
9: cout << mystery(30) << endl;
10: return 0;
11: } // end main
13: int search(int first, int last, int n)
14: {
15: int returnValue = 0;
16: cout << "Enter: first = " << first << " last = "
17: << last << endl;
18:
19: int mid = (first + last)/2;
20: if ( (mid * mid <= n) && (n < (mid+1) * (mid+1)) )
21: returnValue = mid;
22: else if (mid * mid > n)
23: returnValue = search(first, mid-1, n);
24: else
25: returnValue = search(mid+1, last, n);
26:
27: cout << "Leave: first = " << first << " last = "
28: << last << endl;
29: return returnValue;
30: } // end search
32: int mystery(int n)
33: {
34: return search(1, n, n);
35: } // end mystery