fn calc(x: i32, y: i32, mv: i32) -> i32 { let _f = { |n: i32| if n == 0 { 0 } else { n / n.abs() } }; let move_turn = match (_f(x), _f(y)) { (_, -1) => 2, (0, _) => 0, (_, _) => 1, }; let (_x, _y, mv) = (x.abs() as f64, y.abs() as f64, mv as f64); ((_x / mv).ceil() + (_y / mv).ceil() + (move_turn as f64)) as i32 } fn main() { println!("{}", calc(-7, 15, 7)); }