算法还是使用http://www.simonzhang.net/?p=2789。
study.rs
fn check(n:u64) -> bool{
let ll = n.to_string().len();
let cc = String::from(n.to_string());
let mut nn1 = 0;
let mut nn2 = ll-1;
while nn1 < ll{
if cc.chars().nth(nn1) != cc.chars().nth(nn2){
return false;
}
if nn2 == 0{
break;
}
nn1 += 1;
nn2 -= 1;
}
return true;
}
fn main() {
let x:u64 = 10;
let y = x.pow(7);
let mut i = 0;
while i <= y {
if check(i){
if check(i*i){
println!("{} {}", i, i*i)
}
}
i+=1;
}
}
cargo.toml
[profile.release]
lto = true
codegen-units = 1
使用UPX -9 压缩后400k,执行1秒以内。
发表评论