Rust语言编程例子 第029题:整数分解
Rust语言编程题目:咱们从呱呱坠地开始,就开始接触数字。生活中无时无刻的也都充满着数组。假设给你一个数字,是否可以将其中的每位数分解呢?
输入一个不多于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语言编程题目:“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindrome ...