How to recursively check if a number is palindrome in Rust

2 Answers

0 votes
fn is_palindrome(n: i32) -> bool {
    fn recursive_reverse_number(n: i32, temp: i32) -> i32 {
        if n == 0 {
            temp
        } else {
            recursive_reverse_number(n / 10, temp * 10 + n % 10)
        }
    }

    if n < 0 {
        return false; 
    }

    n == recursive_reverse_number(n, 0)
}

fn main() {
    let number = 12321;
    
    println!("{}", is_palindrome(number)); 
}


     
     
/*
run:
 
true

*/

 

 



answered Oct 17, 2024 by avibootz
0 votes
fn recursively_check_palindrome(n: i32, original: i32) -> bool {
    if n == 0 {
        original == original.abs().to_string().chars().rev().collect::<String>().parse::<i32>().unwrap()
    } else {
        recursively_check_palindrome(n / 10, original)
    }
}

fn main() {
    let n = 12321;

    if recursively_check_palindrome(n, n) {
        println!("Palindrome");
    } else {
        println!("NOT Palindrome");
    }
}


     
     
/*
run:
 
Palindrome

*/

 



answered Oct 17, 2024 by avibootz
...