//! Each new term in the Fibonacci sequence is generated by adding the previous two terms.
//! By starting with 1 and 2, the first 10 terms will be:
//!
//! 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
//!
//! By considering the terms in the Fibonacci sequence whose values do not exceed four million,
//! find the sum of the even-valued terms.

const MAX: u32 = 4_000_000;

fn main() {
    let mut prev = 0;
    let mut next = 2;

    let mut total = 0;

    while next < MAX {
        total += next;

        let _prev = next;

        // even numbers in fibonacci sequence can be calculated by:
        // next = (next * 4) + previous
        next = next * 4 + prev;
        prev = _prev;
    }

    println!("{}", total);
}
