diff options
Diffstat (limited to 'other/guess_number_high_low.rs')
-rw-r--r-- | other/guess_number_high_low.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/other/guess_number_high_low.rs b/other/guess_number_high_low.rs new file mode 100644 index 0000000..4cd717b --- /dev/null +++ b/other/guess_number_high_low.rs @@ -0,0 +1,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)); +} |