add day 1 and 2 solutions
This commit is contained in:
Generated
+7
@@ -0,0 +1,7 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "day01"
|
||||
version = "0.1.0"
|
||||
@@ -0,0 +1,8 @@
|
||||
[package]
|
||||
name = "day01"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
@@ -0,0 +1,30 @@
|
||||
use std::io::{self, BufRead};
|
||||
|
||||
fn main() {
|
||||
let nums: Vec<u64> = io::stdin()
|
||||
.lock()
|
||||
.lines()
|
||||
.map(|line| line.unwrap().parse::<u64>().unwrap())
|
||||
.collect();
|
||||
|
||||
let p1: u64 = nums.iter().map(|&num| mass_to_fuel(num)).sum();
|
||||
let p2: u64 = nums.iter().map(|&num| fuel_for_fuel(num)).sum();
|
||||
|
||||
println!("P1: {}, P2: {}", p1, p2);
|
||||
}
|
||||
|
||||
fn mass_to_fuel(mass: u64) -> u64 {
|
||||
(mass / 3).saturating_sub(2)
|
||||
}
|
||||
|
||||
fn fuel_for_fuel(fuel: u64) -> u64 {
|
||||
let mut tot = 0;
|
||||
let mut fuel = fuel;
|
||||
|
||||
while fuel > 0 {
|
||||
fuel = mass_to_fuel(fuel);
|
||||
tot += fuel;
|
||||
}
|
||||
|
||||
tot
|
||||
}
|
||||
Reference in New Issue
Block a user