fork download
  1. use std::collections::BTreeSet;
  2. fn rev(n: usize) -> usize {
  3. fn aux(acc: usize, m: usize) -> usize {
  4. if m == 0 {acc} else {aux(acc * 10 + m % 10, m / 10)}
  5. }
  6. aux(0, n)
  7. }
  8. fn f(n: usize) -> Option<BTreeSet<usize>> {
  9. (0..=n).rev().zip(n..).find(|&(a, b)| a == rev(a) || b == rev(b)).map(|(a, b)|
  10. [a, b].iter().filter(|&&x| x == rev(x)).cloned().collect()
  11. )
  12. }
  13. fn g(n: usize) {
  14. println!("入力: {}\n出力: {:?}\n", n, f(n).unwrap_or_default());
  15. }
  16. fn main() {
  17. [0, 17, 100].iter().cloned().for_each(g);
  18. }
Success #stdin #stdout 0s 5308KB
stdin
Standard input is empty
stdout
入力: 0
出力: {0}

入力: 17
出力: {22}

入力: 100
出力: {99, 101}