aboutsummaryrefslogtreecommitdiff
path: root/other/guess_number_high_low.rs
diff options
context:
space:
mode:
Diffstat (limited to 'other/guess_number_high_low.rs')
-rw-r--r--other/guess_number_high_low.rs22
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));
+}