diff --git a/2019/day1/src/main.rs b/2019/day1/src/main.rs index 8785e06..a17f5d4 100644 --- a/2019/day1/src/main.rs +++ b/2019/day1/src/main.rs @@ -1,5 +1,5 @@ fn main() { - let all_modules: [u32; 100] = [ + let all_modules: [i32; 100] = [ 83568, 132382, 65095, 105082, 138042, 59055, 79113, 123950, 59773, 55031, 56499, 122835, 123608, 82848, 109981, 115633, 126241, 137240, 54983, 129523, 101517, 90879, 82446, 105897, 108653, 130530, 113607, 140338, 125646, 112605, 68080, 105466, 93462, 147116, 127370, @@ -15,13 +15,25 @@ fn main() { for i in all_modules.iter() { result += fuel_calc(*i); } - println!("I need {} fuel for all modules", result); + println!("Part1: I need {} fuel for all modules", result); + + //all_modules.map(fuel_calc).sum() + //all_modules.map(fuel_calc).sum() + println!("Part2: I need {} fuel for all modules", all_modules.iter().fold(0, |sum, x | fuel_calc_with_fuel(*x) + sum )); } -fn fuel_calc(mass: u32) -> u32 { +fn fuel_calc(mass: i32) -> i32 { mass / 3 - 2 } +fn fuel_calc_with_fuel(mass: i32) -> i32 { + let fuel = mass / 3 - 2; + if fuel <= 0 { + return 0; + } + fuel+fuel_calc_with_fuel(fuel) +} + #[test] fn test_it() { assert_eq!(fuel_calc(12), 2);