Rust语言编程实例100题-030

2021-07-19  本文已影响0人  L我是小学生

Rust语言编程实例100题-030

题目:“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

程序分析:学会分解出每一位数。如何得到一个数的每位数呢?具体分解过程详见代码注释。

输出格式:如果是回文数:{} 是一个回文数

如果不是回文数:{} 不是一个回文数

知识点:匹配

fn main() {
   println!("请输入一个5位数字:");
    let mut input_data = String::new();
    std::io::stdin().read_line(&mut input_data).expect("read line error !");

    match input_data.trim().parse::<u32>() {
        Ok(data) => {
            if data < 10000 || data > 99999 {
                println!("请输入一个5位数字!!");
                return;
            }

            // 分解出万位
            let a = data / 10000;
            // 分解出千位
            let b = data % 10000 / 1000;
            // 分解出百位(可以不需要)
            // let c = data % 1000 / 100;
            // 分解出十位
            let d = data % 100 / 10;
            // 分解出个位
            let e = data % 10;

            if a == e && b == d {
                println!("{} 是一个回文数", data);
            } else {
                println!("{} 不是一个回文数", data);
            }
        }
        Err(_) => {
            println!("输入错误!!");
        }
    }
}

程序执行结果:

请输入一个5位数字:
12321
12321 是一个回文数
请输入一个5位数字:
24345
24345 不是一个回文数
上一篇下一篇

猜你喜欢

热点阅读