Skip to content

Instantly share code, notes, and snippets.

@keturiosakys
Created October 19, 2022 23:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save keturiosakys/7e130235bc5812e39a2def72e9b60d0d to your computer and use it in GitHub Desktop.
Save keturiosakys/7e130235bc5812e39a2def72e9b60d0d to your computer and use it in GitHub Desktop.
Pass doors
fn main() {
let result: usize = pass_doors(8, 6);
println!("Doors open: {}", result);
}
fn pass_doors(doors_num: usize, passes: usize) -> usize {
let mut doors = vec![1; doors_num];
let mut step: usize = 1;
while step <= passes {
for door in doors.iter_mut().step_by(step) {
if *door == 1 {
*door = 0
} else {
*door = 1;
}
}
step += 1;
}
doors.iter().filter(|&door| *door == 0).count()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment