Guest User

Untitled

a guest
Nov 14th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. fn main() {
  2. const TARGET: usize = 40;
  3.  
  4. let (f, b, o) = fizz_buzz(TARGET, 3, 5);
  5.  
  6. for i in 0..f.len() {
  7.  
  8. println!("{:02} {}{}{}", i,
  9. if f[i] { "fizz " } else { " " },
  10. if b[i] { "buzz " } else { " " },
  11. if o[i] || i < 1 { "" } else { "oops" })
  12. }
  13. }
  14.  
  15. fn fizz_buzz(target: usize, step_1: usize, step_2: usize) -> (Vec<bool>, Vec<bool>, Vec<bool>) {
  16. let (mut fizz, mut buzz, mut oops) = (vec![false; target+1], vec![false; target+1], vec![false; target+1]);
  17.  
  18. for i in 0..target+1 {
  19. if i % step_1 == 0 {
  20. fizz[i] = true;
  21. }
  22. if i % step_2 == 0 {
  23. buzz[i] = true;
  24. }
  25. if !oops[i] && i > 1 {
  26. for j in (2*i..target+1).step_by(i) {
  27. oops[j] = true;
  28. }
  29. }
  30. }
  31.  
  32. (fizz, buzz, oops)
  33. }
Add Comment
Please, Sign In to add comment