Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::collections::BTreeMap;
- fn mean(nums: &[i32]) -> f32 {
- let mut nums = nums.to_vec();
- nums.sort();
- let len = nums.len();
- if len % 2 == 0 {
- (nums[len/2] + nums[len/2+1]) as f32 / 2 as f32
- } else {
- nums[len/2] as f32
- }
- }
- fn average(nums: &[i32]) -> f32 {
- nums.iter().sum::<i32>() as f32 / nums.len() as f32
- }
- fn mode(nums: &[i32]) -> i32 {
- let mut occurrences = BTreeMap::new();
- for num in nums {
- let count = occurrences.entry(num).or_insert(0);
- *count += 1;
- }
- occurrences.iter().rev().next().unwrap().key()
- }
- fn main() {
- let nums = vec![9, 7, 5, 5, 3, 1];
- println!("Numbers: {:?}", nums);
- println!("Mean: {}", mean(&nums));
- println!("Average: {}", average(&nums));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement