diff options
| -rw-r--r-- | challenge-066/steven-wilson/rust/ch-1.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/challenge-066/steven-wilson/rust/ch-1.rs b/challenge-066/steven-wilson/rust/ch-1.rs new file mode 100644 index 0000000000..2303f09f9d --- /dev/null +++ b/challenge-066/steven-wilson/rust/ch-1.rs @@ -0,0 +1,22 @@ +fn main() { + println!("5 / 2 = {}", divide( 5, 2 )); + println!("-5 / 2 = {}", divide( -5, 2 )); + println!("-5 / -2 = {}", divide( -5, -2 )); +} + +fn divide ( m: i32, n: i32) -> i32 { + let mut a = m.abs(); + let b = n.abs(); + let mut q = 0; + while a >= b { + q += 1; + a -= b; + } + if ( m < 0 && n > 0 ) || ( n < 0 && m > 0 ) { + q *= -1; + if a != 0 { + q -= 1; + } + } + q +} |
