Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fn main() {
- const TARGET: usize = 40;
- let (f, b, o) = fizz_buzz(TARGET, 3, 5);
- for i in 0..f.len() {
- println!("{:02} {}{}{}", i,
- if f[i] { "fizz " } else { " " },
- if b[i] { "buzz " } else { " " },
- if o[i] || i < 1 { "" } else { "oops" })
- }
- }
- fn fizz_buzz(target: usize, step_1: usize, step_2: usize) -> (Vec<bool>, Vec<bool>, Vec<bool>) {
- let (mut fizz, mut buzz, mut oops) = (vec![false; target+1], vec![false; target+1], vec![false; target+1]);
- for i in 0..target+1 {
- if i % step_1 == 0 {
- fizz[i] = true;
- }
- if i % step_2 == 0 {
- buzz[i] = true;
- }
- if !oops[i] && i > 1 {
- for j in (2*i..target+1).step_by(i) {
- oops[j] = true;
- }
- }
- }
- (fizz, buzz, oops)
- }
Add Comment
Please, Sign In to add comment