fn sum_even_numbers_in_fibonacci(n: usize) -> i32 {
if n < 1 {
return 0;
}
let mut current_number = 0;
let mut next_number = 1;
let mut sum = 0;
let mut sequence = vec![0, 1];
for _ in 0..n - 2 {
let temp = next_number;
next_number = current_number + next_number;
current_number = temp;
sequence.push(next_number);
if next_number % 2 == 0 {
sum += next_number;
}
}
println!("{}", sequence.iter().map(|num| num.to_string()).collect::<Vec<_>>().join(" "));
sum
}
fn main() {
let limit = 16;
let sum_result = sum_even_numbers_in_fibonacci(limit);
println!("Sum = {}", sum_result);
}
/*
run:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610
Sum = 798
*/