32 lines
747 B
Rust
32 lines
747 B
Rust
use std::collections::HashMap;
|
|
|
|
fn main() {
|
|
let mut numbers = vec![100, 23, 1, 2, 100, 38, 57, 100, 23, 44, 163];
|
|
numbers.sort();
|
|
|
|
let is_even = numbers.len() % 2 == 0;
|
|
let median: i32;
|
|
let mut count = HashMap::new();
|
|
|
|
if is_even {
|
|
let n1 = numbers[(numbers.len() / 2) - 1];
|
|
let n2 = numbers[numbers.len() / 2];
|
|
median = (n1 + n2) / 2;
|
|
} else {
|
|
median = numbers[numbers.len() / 2];
|
|
}
|
|
|
|
let mut mode: i32 = 0;
|
|
|
|
for num in numbers {
|
|
let entry = count.entry(num).or_insert(0);
|
|
*entry += 1;
|
|
|
|
if *entry > count.get(&mode).copied().unwrap_or(0) {
|
|
mode = num;
|
|
}
|
|
}
|
|
|
|
println!("median: {median}");
|
|
println!("mode: {mode}");
|
|
}
|