Recursive Digit Sum

  • + 0 comments

    There is a faster method creating a new recursive function that only works with numbers instead of string, but not sure if that was asked, because of how the question was structured.

    Also, you can not even use recursion and just take (n*k)%9, but seems kinda magic

    Rust best solution

    If you’re looking for solutions to the 3-month preparation kit in either Python or Rust, you can find them below: my solutions

    fn superDigit(n: &str, k: i32) -> i32 {
        if (n.len() == 1) && (k == 1) {
            return n.parse::<i32>().unwrap();
        }
    
        let mut sum = 0;
        for number in n.chars() {
            let number = number.to_digit(10).unwrap();
            sum += number;
        }
        if k != 1 {
            sum = (superDigit(&(sum as i32).to_string(), 1) * k) as u32;
        }
        superDigit(&(sum as i32).to_string(), 1) * 1
    }