aboutsummaryrefslogtreecommitdiff
path: root/guess_number_high_low.rs
blob: 4cd717be82d4487820d58bec20498317128b4578 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
struct Solution;

impl Solution {
    unsafe fn guessNumber(n: i32) -> i32 {
        let (mut s, mut n) = (1, n as i64);
        while s <= n {
            let x = (n + s) / 2;
            let g = guess(x as i32);
            match g {
                0 => return x as i32,
                1 => s = x + 1,
                -1 => n = x - 1,
                _ => unreachable!()
            }
        }
        unreachable!()
    }
}

fn main() {
    print!("{}", Solution::guessNumber(10));
}