44 lines
714 B
Rust
44 lines
714 B
Rust
fn main() {
|
|
println!("Hello, world!");
|
|
}
|
|
|
|
fn try_reverse(x: i32) -> Option<i32> {
|
|
let mut i = x;
|
|
let mut result: i32 = 0;
|
|
|
|
while i != 0 {
|
|
let digit = i % 10;
|
|
result = result.checked_mul(10)?.checked_add(digit)?;
|
|
|
|
i /= 10;
|
|
}
|
|
|
|
Some(result)
|
|
}
|
|
|
|
pub fn reverse(x: i32) -> i32 {
|
|
try_reverse(x).unwrap_or(0)
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use crate::reverse;
|
|
|
|
#[test]
|
|
fn test_1() {
|
|
assert_eq!(reverse(123), 321);
|
|
}
|
|
#[test]
|
|
fn test_2() {
|
|
assert_eq!(reverse(-123), -321);
|
|
}
|
|
#[test]
|
|
fn test_3() {
|
|
assert_eq!(reverse(120), 21);
|
|
}
|
|
#[test]
|
|
fn test_4() {
|
|
assert_eq!(reverse(1534236469), 0);
|
|
}
|
|
}
|