Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1. use std::collections::BTreeMap;
  2.  
  3. fn mean(nums: &[i32]) -> f32 {
  4. let mut nums = nums.to_vec();
  5. nums.sort();
  6. let len = nums.len();
  7. if len % 2 == 0 {
  8. (nums[len/2] + nums[len/2+1]) as f32 / 2 as f32
  9. } else {
  10. nums[len/2] as f32
  11. }
  12. }
  13.  
  14. fn average(nums: &[i32]) -> f32 {
  15. nums.iter().sum::<i32>() as f32 / nums.len() as f32
  16. }
  17.  
  18. fn mode(nums: &[i32]) -> i32 {
  19. let mut occurrences = BTreeMap::new();
  20. for num in nums {
  21. let count = occurrences.entry(num).or_insert(0);
  22. *count += 1;
  23. }
  24. occurrences.iter().rev().next().unwrap().key()
  25. }
  26.  
  27. fn main() {
  28. let nums = vec![9, 7, 5, 5, 3, 1];
  29. println!("Numbers: {:?}", nums);
  30. println!("Mean: {}", mean(&nums));
  31. println!("Average: {}", average(&nums));
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement