今年用rust写
1、给一个年份,看闰年还是平年。
use std::io;
fn main() {
let mut year = String::new();
io::stdin().read_line(&mut year).expect("msg");
let year: u32 = match year.trim().parse() {
Ok(num) => num,
Err(_) => {
println!("请输入有效的年份!");
return;
}
};
if is_leap_year(year) {
println!("{} 是闰年", year);
} else {
println!("{} 不是闰年", year);
}
}
fn is_leap_year(year: u32) -> bool {
(year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)
}
2、水仙花数字
fn is_narcissistic_number(num: u32) -> bool {
let digits: Vec<u32> = num
.to_string()
.chars()
.map(|c| c.to_digit(10).unwrap())
.collect();
let n = digits.len() as u32;
digits.iter().map(|&d| d.pow(n)).sum::<u32>() == num
}
fn main() {
println!("以下是所有的三位水仙花数:");
for num in 100..1000 {
if is_narcissistic_number(num) {
println!("{}", num);
}
}
}