pub fn main() { let v = vec![ (1, 31), (2, 28), (3, 31), (4, 30), (5, 31), (6, 30), (7, 31), (8, 31), (9, 30), (10, 31), (11, 30), (12, 31), ]; let all_date: Vec<(usize, usize)> = v.iter() .flat_map(|&(m, d)| (1..d).map(move |x| (m, x))) .collect(); let sum_digit = |x| (x / 10) + (x % 10); let mut count = 0; for (m, d) in all_date { if m == sum_digit(d) { count += 1; } } println!("{}", count); }