#[cfg(test)]
mod tests {
#[test]
fn test_numred() {
let mut number: u64 = 12345678901299888;
let mut result = super::numred(&number);
assert_eq!(9, result);
number = 25;
result = super::numred(&number);
assert_eq!(7, result);
}
}
pub fn numred(number: &u64) -> u8 {
let v: Vec<u8> = number
.to_string()
.chars()
.map(|d| d.to_digit(10).unwrap() as u8)
.collect();
let mut result: u8 = 0;
for i in &v {
result = &result + i;
if result >= 10 {
let r = result as u64;
result = numred(&r);
}
}
result
}