fn f(n: u64) -> u64 {
let to_width
= |x
| ((x as f64
).
log10() + 1f64
) as u64
; (1..n + 1).filter(|x| x % 2 == 1).map(to_width).fold(0, |acc, w| acc + w)
}
fn main() {
for n in vec!(3, 10, 9999, 123456789) {println!("{} => {:?}", n, f(n))}
}
Zm4gZihuOiB1NjQpIC0+IHU2NCB7CiAgICBsZXQgdG9fd2lkdGggPSB8eHwgKCh4IGFzIGY2NCkubG9nMTAoKSArIDFmNjQpIGFzIHU2NDsKICAgICgxLi5uICsgMSkuZmlsdGVyKHx4fCB4ICUgMiA9PSAxKS5tYXAodG9fd2lkdGgpLmZvbGQoMCwgfGFjYywgd3wgYWNjICsgdykKfQpmbiBtYWluKCkgewogICAgZm9yIG4gaW4gdmVjISgzLCAxMCwgOTk5OSwgMTIzNDU2Nzg5KSB7cHJpbnRsbiEoInt9ID0+IHs6P30iLCBuLCBmKG4pKX0KfQo=