fn calc_comb_odd(val: usize) -> usize { if val < 2 { return 0; } if val % 2 == 0 { calc_comb_odd(val / 2) + val / 2 } else { 2 * calc_comb_odd(val / 2) } } fn main() { let mut n = String::new(); std::io::stdin().read_line(&mut n).ok(); let n: usize = n.trim().parse().unwrap(); println!("{}", calc_comb_odd(n)); }