美文网首页
Rust语言编程实例100题-029

Rust语言编程实例100题-029

作者: L我是小学生 | 来源:发表于2021-07-18 12:50 被阅读0次

    Rust语言编程实例100题-029

    题目:咱们从呱呱坠地开始,就开始接触数字。生活中无时无刻的也都充满着数组。假设给你一个数字,是否可以将其中的每位数分解呢?

    输入一个不多于5位的正整数。然后满足以下两个要求:

    1、求它是几位数

    2、逆序打印出各位数字。

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

    输出格式:{}为 {} 位数,逆序为:xxx

    知识点:匹配

    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 > 99999 {
                    println!("输入的数大约5位数了!");
                    return;
                }
                if data == 0 {
                    println!("输入的数不能为 0!");
                    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 != 0 {
                    println!("{} 为 5 位数,逆序为: {} {} {} {} {}", data, e, d, c, b, a);
                } else if b != 0 {
                    println!("{} 为 4 位数,逆序为: {} {} {} {}", data, e, d, c, b);
                } else if c != 0 {
                    println!("{} 为 3 位数,逆序为: {} {} {}", data, e, d, c);
                } else if d != 0 {
                    println!("{} 为 2 位数,逆序为: {} {}", data, e, d);
                } else if e != 0 {
                    println!("{} 为 1 位数,逆序为: {}", data, e);
                }
            }
            Err(_) => {
                println!("输入错误!!");
            }
        };
    }
    

    程序执行结果:

    请输入一个不多于5位正整数:
    123
    123 为 3 位数,逆序为: 3 2 1
    

    相关文章

      网友评论

          本文标题:Rust语言编程实例100题-029

          本文链接:https://www.haomeiwen.com/subject/getapltx.html