Initial commit
This commit is contained in:
parent
57e9a6e7d7
commit
16fdb976d9
11
day1/haskell/day1.hs
Normal file
11
day1/haskell/day1.hs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import System.IO
|
||||||
|
import Control.Monad
|
||||||
|
|
||||||
|
getInts :: FilePath -> IO [Integer]
|
||||||
|
getInts path = do
|
||||||
|
contents <- readFile path
|
||||||
|
let ints = (map read . lines $ contents) :: [Integer]
|
||||||
|
return ints
|
||||||
|
|
||||||
|
main = do
|
||||||
|
putStrLn "The solution is: "
|
||||||
100
day1/input
Normal file
100
day1/input
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
54755
|
||||||
|
96495
|
||||||
|
111504
|
||||||
|
53923
|
||||||
|
118158
|
||||||
|
118082
|
||||||
|
137413
|
||||||
|
135315
|
||||||
|
87248
|
||||||
|
127646
|
||||||
|
79201
|
||||||
|
52399
|
||||||
|
77966
|
||||||
|
129568
|
||||||
|
63880
|
||||||
|
128973
|
||||||
|
55491
|
||||||
|
111226
|
||||||
|
126447
|
||||||
|
87017
|
||||||
|
112469
|
||||||
|
83975
|
||||||
|
51280
|
||||||
|
60239
|
||||||
|
120524
|
||||||
|
57122
|
||||||
|
136517
|
||||||
|
117378
|
||||||
|
93629
|
||||||
|
55125
|
||||||
|
68990
|
||||||
|
70336
|
||||||
|
115119
|
||||||
|
68264
|
||||||
|
148122
|
||||||
|
70075
|
||||||
|
106770
|
||||||
|
54976
|
||||||
|
123852
|
||||||
|
61813
|
||||||
|
113373
|
||||||
|
53924
|
||||||
|
59660
|
||||||
|
67111
|
||||||
|
52825
|
||||||
|
81568
|
||||||
|
110842
|
||||||
|
134870
|
||||||
|
135529
|
||||||
|
78689
|
||||||
|
129451
|
||||||
|
96041
|
||||||
|
91627
|
||||||
|
70863
|
||||||
|
100098
|
||||||
|
121908
|
||||||
|
96623
|
||||||
|
143752
|
||||||
|
149936
|
||||||
|
116283
|
||||||
|
149488
|
||||||
|
126158
|
||||||
|
106499
|
||||||
|
124927
|
||||||
|
109574
|
||||||
|
70711
|
||||||
|
139078
|
||||||
|
67212
|
||||||
|
124251
|
||||||
|
123803
|
||||||
|
73569
|
||||||
|
145668
|
||||||
|
96045
|
||||||
|
59748
|
||||||
|
123238
|
||||||
|
68005
|
||||||
|
121412
|
||||||
|
97236
|
||||||
|
104800
|
||||||
|
86786
|
||||||
|
141680
|
||||||
|
123807
|
||||||
|
82310
|
||||||
|
76593
|
||||||
|
146092
|
||||||
|
82637
|
||||||
|
92339
|
||||||
|
93821
|
||||||
|
56247
|
||||||
|
58328
|
||||||
|
90159
|
||||||
|
105700
|
||||||
|
57317
|
||||||
|
69011
|
||||||
|
125544
|
||||||
|
102372
|
||||||
|
63797
|
||||||
|
92127
|
||||||
|
111207
|
||||||
|
77596
|
||||||
9
day1/rust/Cargo.toml
Normal file
9
day1/rust/Cargo.toml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[package]
|
||||||
|
name = "day1"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Tobias Eidelpes <tobias@eidelpes.info>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
30
day1/rust/src/main.rs
Normal file
30
day1/rust/src/main.rs
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
use std::fs::File;
|
||||||
|
use std::env;
|
||||||
|
use std::io::{Error, BufRead, BufReader};
|
||||||
|
|
||||||
|
fn main() -> Result<(), Error> {
|
||||||
|
let args: Vec<String> = env::args().collect();
|
||||||
|
|
||||||
|
let filename = &args[1];
|
||||||
|
|
||||||
|
let reader = BufReader::new(File::open(filename).unwrap());
|
||||||
|
|
||||||
|
let mut result: i64 = 0;
|
||||||
|
|
||||||
|
for line in reader.lines() {
|
||||||
|
let n = line.unwrap().parse::<i64>().unwrap();
|
||||||
|
result += calculate_fuel(n);
|
||||||
|
}
|
||||||
|
println!("Result: {}", result);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
fn calculate_fuel(mass: i64) -> i64 {
|
||||||
|
let fuel = mass / 3 - 2;
|
||||||
|
if fuel < 0 {
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
return (fuel) + calculate_fuel(fuel);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user