From 448f1d209ff0aa8b4f2756bf2caca997a02afd18 Mon Sep 17 00:00:00 2001 From: Fabian Schmidt Date: Mon, 16 Sep 2024 12:42:55 +0200 Subject: [PATCH] solved 28 --- src/bin/problem_28.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/bin/problem_28.rs diff --git a/src/bin/problem_28.rs b/src/bin/problem_28.rs new file mode 100644 index 0000000..6bd0b96 --- /dev/null +++ b/src/bin/problem_28.rs @@ -0,0 +1,19 @@ +// instead of computing the spiral and summing the diagonals, only get corners +fn main() { + let dimension = 1001; + let mut sum = 0; + let squares = (dimension / 2) + 1; + let mut last_square_end = 0; + for square in 0..squares { + if square == 0 { + sum = 1; + last_square_end = 1; + continue; + } + for corner in 0..4 { + sum += last_square_end + (square * 2) * (corner + 1); + } + last_square_end = last_square_end + (square * 2) * 4; + } + println!("{sum}"); +}