题解 | #自守数#
自守数
http://www.nowcoder.com/practice/88ddd31618f04514ae3a689e83f3ab8e
第一种:打表
不老实的人会进行打表。
use std::io;
fn main() {
let mut s = String::new();
io::stdin().read_line(&mut s).unwrap();
println!("{}",match s.trim().parse::<u32>().unwrap() {
1..=4 => 2,
5 => 3,
6..=24 => 4,
25..=75 => 5,
76..=375 => 6,
376..=624 => 7,
625..=9375 => 8,
_ => 9,
});
}
第二种:求出自守数
老实的人会求出范围内的自守数。
use std::io;
fn main() {
let mut s = String::new();
io::stdin().read_line(&mut s).unwrap();
let n = s.trim().parse::<u32>().unwrap();
let mut counter = 0;
for i in 0..=n {
if (i.pow(2)).to_string().ends_with(&(i.to_string())) {
counter += 1;
}
}
println!("{}",counter);
}
用 Rust 刷华为机试HJ 文章被收录于专栏
用 Rust 刷 HJ100 题,只需要懂基础 Rust 语法就能看懂