28
This commit is contained in:
@@ -0,0 +1,6 @@
|
|||||||
|
[package]
|
||||||
|
name = "euler28"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2024"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
fn main() {
|
||||||
|
let result = spiral(1001);
|
||||||
|
println!("{result}");
|
||||||
|
}
|
||||||
|
|
||||||
|
fn spiral(edge_length: usize) -> usize {
|
||||||
|
let max = edge_length * edge_length;
|
||||||
|
let mut sum = 1;
|
||||||
|
let mut number = 1;
|
||||||
|
let mut offset = 2;
|
||||||
|
let steps = 4;
|
||||||
|
loop {
|
||||||
|
for _ in 0..steps {
|
||||||
|
number += offset;
|
||||||
|
sum += number;
|
||||||
|
}
|
||||||
|
offset += 2;
|
||||||
|
if number == max {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sum
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use crate::spiral;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn spiral_5() {
|
||||||
|
assert_eq!(spiral(5), 101);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user