1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
fn (n: u32) -> bool { n % 2 == 1 }
fn main() { println!("Find the sum of all the squared odd numbers under 1000"); let upper = 1000;
let mut acc = 0; for n in 0.. { let n_squared = n * n;
if n_squared >= upper { break; } else if is_odd(n_squared) { acc += n_squared; } } println!("imperative style: {}", acc);
let sum_of_squared_odd_numbers: u32 = (0..).map(|n| n * n) .take_while(|&n_squared| n_squared < upper) .filter(|&n_squared| is_odd(n_squared)) .fold(0, |acc, n_squared| acc + n_squared); println!("functional style: {}", sum_of_squared_odd_numbers); }
|
近期评论