Coin de Gamma
1 year ago
1 changed files with 37 additions and 0 deletions
@ -0,0 +1,37 @@
|
||||
fn test_10(n: u32) -> bool { |
||||
let s = n.to_string(); |
||||
let sv = s.chars().collect::<Vec<char>>(); |
||||
let svr = s.chars().rev().collect::<Vec<char>>(); |
||||
for i in 0..s.len() { |
||||
if sv[i] != svr[i] { |
||||
return false; |
||||
} |
||||
} |
||||
return true; |
||||
} |
||||
fn test_2(n: u32) -> bool { |
||||
let mut sv = Vec::new(); |
||||
let mut a = n; |
||||
while a > 0 { |
||||
sv.push(a % 2); |
||||
a /= 2; |
||||
} |
||||
let mut svr = sv.clone(); |
||||
svr.reverse(); |
||||
for i in 0..sv.len() { |
||||
if sv[i] != svr[i] { return false; } |
||||
} |
||||
return true; |
||||
} |
||||
|
||||
fn main() { |
||||
let mut sum = 0; |
||||
for n in 1..1_000_000 { |
||||
if test_10(n) && test_2(n) { |
||||
println!("{}", n); |
||||
sum += n; |
||||
} |
||||
} |
||||
println!("{}", sum); |
||||
|
||||
} |
Loading…
Reference in new issue